HashMap和HashTable的區別

2021-10-11 18:49:20 字數 516 閱讀 9944

1.繼承不同:

hashmap繼承自abstractmap,hashtable繼承自dictionary

2.key和value值要求不同:

hashmap的key和value都可以為null值,但只能有乙個為null值的key;hashtable的key和value都不可以為null.

3.執行緒安全性不同:

hashmap方法沒加同步鎖,執行緒不安全;hashtable方法加了同步鎖,執行緒安全

4.初始容量和擴容方式不同:

hashmap的hash陣列初始容量為16,擴容方式為變為原來的兩倍;hashtable的hash陣列初始容量為11,擴容方式為 變為原來的兩倍再+1.

5.計算hash值的方式不同:

hashtable直接使用物件的hashcode,而hashmap重新計算hash值。

6.hashmap效率要高於hashtable

hashmap底層是乙個entry陣列,每個陣列元素又是乙個鍊錶,jdk1.8後,鍊錶長度超過8,就會變為紅黑樹。

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...