Hashtable與HashMap的區別

2021-08-30 18:31:10 字數 711 閱讀 4301

1.最明顯的區別在於hashtable 是同步的(每個方法都是synchronized),而hashmap則不是.所以在多執行緒場合要手動同步hashmap,這個區別就像vector和arraylist一樣。

2.hashmap繼承至abstractmap,hashtable繼承至dictionary ,前者為map的骨幹, 其內部已經實現了map所需 要做的大部分工作,它的子類只需要實現它的少量方法即可具有map的多項特性。而後者內部都為抽象方法,需要它的實現類一一作自己的實現,且該類已過時

3.兩者檢測是否含有key時,hash演算法不一致,hashmap內部需要將key的hash碼重新計算一邊再檢測,而 hashtable則直接利用key本身的hash碼來做驗證。

4. 兩者初始化容量大小不一致,hashmap內部為 16*0.75 , hashtable 為 11*0.75

5.hashtable不允許null值(key和value都不可以),hashmap允許null值 (key和 value都可以)。

6.hashtable 有乙個contains(object value),功能和 containsvalue(object value)功能一樣。

7.hashtable使用enumeration,hashmap 使用iterator。

8.hashtable中hash陣列預設大小是11,增加的方式是 old*2+1。hashmap中hash陣列的預設大小是16,而且一定是2的指數

資料結構之HashTable與HashMap

首先介紹一下hashtable 與hashmap hashtable類實現乙個雜湊表,該雜湊表將鍵對映到相應的值。任何非 null 物件都可以用作鍵或值。hashmap是基於雜湊表的map 介面的實現。此實現提供所有可選的對映操作,並允許使用 null 值和 null 鍵。hashmap不保證對映的...

Java中HashTable和HashMap的區別

1 hashtable的方法是同步的,hashmap不同步,所以在多執行緒情況下,使用的是hashtable 2 hashtable不允許null值 key和value都不可以 hashmap允許null值 key和value都可以 3 hashtable有乙個contains 方法,功能和cont...

如何實現key, value有序的HashMap

想要寫個key,value有序的hashmap,出現效能問題,大家幫忙給個主意吧。b 先說下我的設計思路 b linkedhashmap裡面有乙個模擬的 雙向迴圈鍊錶 用來儲存entry的插入順序,我也可以採用這種方法來在插入的時候儲存key和value的有序。這裡暫定名為orderedhashma...