天天看點

java基礎知識—HashTable和HashMap的差別

我看了一下java源代碼,并結合書上的知識,總結有四點:

(1)HashTable繼承抽象類Dictionary,而HashMap繼承自AbstractMap類并實作了Map接口;

(2)HashTable是線程安全的,而HashMap是線程不安全的;

(3)HashTable不容許有null值(key和value都不行),而HashMap容許有null值(key和value都行);

(4)HashTable中hash數目預設是11,增加的方式是2*old+1,而HashMap中的hash數目預設大小是16,并且一定要是2的指數;

(5)哈希值的使用不同,HashTable直接使用對像的hashCode,而HashMap會重新計算hash值。

(6)HashTable使用Enumeration周遊,而HashMap使用Iterator周遊。