HashMap 和 Hashtable 的區別?


HashMap 和 Hashtable 的區別?

1、Hashtable 繼承 Dictionary ,HashMap 繼承的是 Java2 出現的 Map 接口。
2、HashMap 去掉了 Hashtable 的 contains 方法,但是加上了 containsValue 和 containsKey 方法。
3、HashMap 允許空鍵值,而 Hashtable 不允許。
【重點】4、HashTable 是同步的,而 HashMap 是非同步的,效率上比 HashTable 要高。也因此,HashMap 更適合於單線程環境,而 HashTable 適合於多線程環境。
5、HashMap 的迭代器(Iterator)是 fail-fast 迭代器,HashTable的 enumerator 迭代器不是 fail-fast
6、HashTable 中數組默認大小是 11 ,擴容方法是 old * 2 + 1 ,HashMap 默認大小是 16 ,擴容每次為 2 的指數大小。


分享到:


相關文章: