HashMap和Hashtable都实现了Map接口,因此很多特性非常相似。但是,他们有以下不同点:

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

2、HashMap允许键和值是null,而Hashtable不允许键或者值是null。

3、因为线程安全的问题,HashMap效率比HashTable的要高。
4、Hashtable是同步的,而HashMap不是。因此,HashMap更适合于单线程环境,而Hashtable适合于多线程环境。
 
5、HashMap提供了可供应用迭代的键的集合,因此,HashMap是快速失败的。另一方面,Hashtable提供了对键的列举(Enumeration)。
一般认为Hashtable是一个遗留的类。
    一般现在不建议用HashTable, ①是HashTable是遗留类,内部实现很多没优化和冗余。②即使在多线程环境下,现在也有同步的ConcurrentHashMap替代,没有必要因为是多线程而用HashTable。
posted on 2018-07-17 15:02  yonyong  阅读(806)  评论(0编辑  收藏  举报