HashMap和Hashtable的區別

2021-09-08 20:24:33 字數 712 閱讀 9205

1、hashmap和hashtable是map介面下的兩個實現類,因為map物件是鍵值對的,所以此兩類也是鍵值對的。

2、hashmap是執行緒非安全的,hashtable是執行緒安全的,所以hashmap的效率高於hashtable。

3、hashmap允許鍵或值為null,鍵最多隻可以有乙個為null,值不受限制。而hashtable鍵或值都不許為null。

注意:hashtable中的「t」是小寫的。

hashmap的底層原理?

hashmap底層就是乙個陣列結構,陣列中的每一項又是乙個鍊錶。

當新建乙個hashmap的時候,就會初始化乙個陣列。

entry就是陣列中的元素,每個 entry 其實就是乙個key-value對,

它持有乙個指向下乙個元素的引用,這就構成了鍊錶。

hashmap 在底層將 key-value 當成乙個整體進行處理,這個整體就是乙個 entry 物件。

hashmap 底層採用乙個 entry 陣列來儲存所有的 key-value 對,

當需要儲存乙個 entry 物件時,會根據hash演算法來決定其在陣列中的儲存位置,

再根據equals方法決定其在該陣列位置上的鍊錶中的儲存位置;當需要取出乙個entry時,也會根據hash演算法找到其在陣列中的儲存位置,

再根據equals方法從該位置上的鍊錶中取出該entry。

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