1. 程式人生 > >hashtable 和 hashmap的區別與聯絡

hashtable 和 hashmap的區別與聯絡

1、相同點:兩者都是對於介面java.util.Map的實現類;都是用來儲存健值的資料結構。

2、區別: (1)hashmap允許鍵值為空(key=null),但最多值允許一條記錄的簡直為空。hashtable不允許。

(2)hashmap不支援執行緒同步,不是執行緒安全的,hashtable是執行緒安全的。

(3)hash值的計算不同。

(4)hash陣列大小和擴容不同:hashmap中,hash陣列的預設大小是16,而且一定是2的倍數;hashtable中,hash陣列預設大小是11,增加方式是old*2+1.

(5)判斷是否包含某個值的時候方法不同:hashmap繼承自父類AbstractMap,hashtable繼承自父類Dictionary; HashMap把Hashtable的contains方法去掉了,改成containsValue和containsKey。

(6)hashmap使用Iterator,hashtable使用Enumeration。