HashMap和HashTable的區別(簡述版)
阿新 • • 發佈:2019-02-06
1.繼承的父類不同
HashMap繼承的是AbtractMap,HashTable繼承的是Dictionary,但是兩者均實現了Map介面。
2.執行緒安全性不同
HashMap是不安全的,HashTable是安全的。因為HashTable所有的方法全是 Synchrinize的。
3.存放的元素是否可為空
HashMap中key和value都允許為空,但是null為key的鍵值對只能有一對;而HashTable中key,value都不允許為空。
4.是否保留了Contains方法
HashMap不提供Contains方法,但是有containsValue和ContainsKey方法;
而HashTable既有Contains方法也有containsValue和ContainsKey方法。其中Contains和containsValue功能相同。
5.Hash值不同
HashMap重新計算了key的Hash值,而HashTable直接使用了key的HashCode()。
6.遍歷方式不同
HashMap和HashTable都可以使用Iterator遍歷,但是HashTable還可以使用Enumeration的方式。
7.初始容量不同
HashMap在不定義初始容量的情況下預設容量是16,而HashTable為11。
8.擴容方式不同
HashMap的擴容方式為乘以2,而HashTable的擴容方式為乘以2再減1。