我看了一下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周遊。