1. 程式人生 > >HashMap和HashTable的區別(簡述版)

HashMap和HashTable的區別(簡述版)

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。