HashMap和Hashtable的區別

2021-07-28 23:09:35 字數 458 閱讀 6115

hashmap和hashtable的區別是我們經常碰到的乙個問題。了解其實現原理和區別能幫我們更好的使用它們。hashmap和hashtable都實現了map介面,但其實現方式不同。

區別:1.hashmap是執行緒不安全的,hashtable是執行緒安全的

2.因為hashmap是非synchronized的,故其效率要比hashtable高。

3.hashmap的迭代器是fail-fast的,而hashtable是通過 enumerator迭代器。

為什麼說hashmap是執行緒不安全的?

hashmap是基於hashing原理實現的。我們通過put()和get()方法儲存和獲取物件。當我們通過put()方法存放資料的時候,它會呼叫鍵值物件的hashcode()方法,計算出雜湊值,通過雜湊值找到bucket位置,然後將該鍵值物件存到該位置。如果計算出的hashcode值相等,則會發生碰撞。hashmap會使用鍊錶解決衝突。

HashMap的工作原理和hashtable區別

1.hashmap的工作原理?hashmap底層是陣列 鍊錶 以陣列儲存元素,如有hash相同的元素,在陣列結構中,建立鍊錶結構,再把hash相同的元素放到鍊錶的下乙個節點 基於hashing 雜湊法 雜湊法 是一種將字元組成的字串轉換為固定長度的數值或索引值的方法 的原理。通過put get 方法...

HashMap和LinkedHashMap的區別

hashmap,linkedhashmap,treemap都屬於map map 主要用於儲存鍵 key 值 value 對,根據鍵得到值,因此鍵不允許鍵重複,但允許值重複。hashmap 是乙個最常用的map,它根據鍵的hashcode 值儲存資料,根據鍵可以直接獲取它的值,具有很快的訪問速度。ha...

HashMap和LinkedHashMap的區別

hashmap,linkedhashmap,treemap都屬於map map 主要用於儲存鍵 key 值 value 對,根據鍵得到值,因此鍵不允許鍵重複,但允許值重複。hashmap 是乙個最常用的map,它根據鍵的hashcode 值儲存資料,根據鍵可以直接獲取它的值,具有很快的訪問速度。ha...