HashMap和Hashtable有什么区别?

217 阅读1分钟

笔记

  1. hashmap允许null为键值,hashtable不允许null为键值
  2. hashmap非线程安全,效率较高,非同步,适合单线程
  3. 不建议使用hashtable,因为他很多没优化;在多线程环境下可以用ConcurrentHashMap代替

原文

1、HashMap是非线程安全的,HashTable是线程安全的。

2、HashMap的键和值都允许有null值存在,而HashTable则不行。

3、因为线程安全的问题,HashMap效率比HashTable的要高。
4、Hashtable是同步的,而HashMap不是。因此,HashMap更适合于单线程环境,而Hashtable适合于多线程环境。
一般现在**不建议用HashTable**, ①是HashTable是遗留类,内部实现很多没优化和冗余。②即使在**多线程**环境下,现在也有同步的**ConcurrentHashMap**替代,没有必要因为是多线程而用HashTable。

链接:www.nowcoder.com/questionTer…
来源:牛客网