hashmap知識點小結

2021-09-10 06:35:09 字數 451 閱讀 6812

1.hashmap是基於hash表的map介面實現

2.hashmap底層採用的是entry陣列和鍊錶實現的

3.hashmap採用鍵值隊(key,value)結構,其中:key不可重複,可以為null,value的值可以重複。

4.hashmap為執行緒不安全,無synchronized修飾

5.hashmap無序,儲存順序可能和遍歷順序不一致。儲存位置:通過計算key值的hash值去決定

初始化:初始化容量為16,負載因子為0.75.

內部封裝了乙個內部類(entry),包含key, value,next三個屬性。初始化時,會初始化乙個entry陣列,用來儲存key和value的值。在儲存時,若沒有key為null,則hash值為0,儲存在entry陣列0的位置,通過hash方法對key進行計算hash雜湊值,並且根據這個雜湊值查詢這個要儲存的值應該儲存到table這個陣列中的哪個索引位置。

hashMap關鍵知識點

1 資料結構 jdk1.7是陣列加鍊表,jdk1.8是陣列加鍊表加紅黑樹 鍊錶太長了查詢也慢,所以鍊錶長度超過8時就使用紅黑樹咯 2 hashmap的初始化大小 1 不給長度時,預設初始化為16,建立map時盡量給個長度,防止不斷擴容影響效率。2 大小為2的n次冪時,雜湊得比較均勻,那麼查詢就比較快...

HashMap面試知識點

答案 2個put會同時擴容造成死迴圈 鍊錶有環 可能有2個同時put,導致1個丟失,被後面的put覆蓋了。一種情況是2個執行緒,1存1取,a剛存完key1value1,還沒等b取值,a又存完key1value2,這樣b取值只能取得key1value2,key1value1就丟失了 答案 當hashm...

知識點小結

華為 1.c與c 哪個效能比較好?從語言特性角度上來看,c 是c的超集。在 c c的這部分語言特性中有很多會降低執行效率。乙個例子是dynamic cast,執行乙個dynamic cast要消耗100 300個cpu cycles,因為機器要跳到一段特別的snippet 一小段程式 去檢查type...