HashMap學習總結

2021-10-08 10:13:06 字數 721 閱讀 8466

答:雜湊表又稱雜湊表是一種k-value鍵值對對應關係的資料結構,它通過乙個關鍵碼k,經過雜湊函式,能找到存在陣列上的記錄,查詢速度塊。

答:它是底層主幹是陣列(雜湊表的主幹是陣列),陣列裡的每個元素都是煉表頭。到了jdk8,增加了紅黑樹結構,所以,總的來說陣列+鍊錶+紅黑樹。

答:hashmap有雜湊表的特性查詢快,可以通過k值,經過底層的雜湊演算法,算出雜湊表上相應位址,如果這個位址存放的是預期的value,取出即可。如果這個位址存放的value不是預期值,並且這個位址存放的是乙個鍊錶,則順著鍊錶往下找,直到找到預期的value。

答:同上理,找位置,位置空,就放進去,位置不空,則實現鍊錶追加進去。

在jdk8後,hashmap加入了紅黑樹結構。也就是說,發生雜湊衝突,鍊錶的元素超過8這個閾值,鍊錶就會轉換稱紅黑樹的結構來儲存。

hashmap的初始容量為16,負載因子0.75,擴容方式是2的次冪。

負載因子關係著什麼時候該擴容。0.75是經過計算的折中資料,雜湊衝突機率較小。

hashmap和hashtable的比較,可以從父類,初始容量,擴容方式,key-value是否null,執行緒安全多方面考慮。

hashmap繼承的父類是abstractmap,初始容量16,擴容方式是2次冪,key可以為null,value不一樣null,執行緒不安全。

hashtable繼承的父類是dictionary,初始容量11,擴容方式是2次冪+1,keyh和value都為null,執行緒安全。

HashMap 學習總結

本文參考見 by chenssy 知識點 1.hashmap的三個建構函式 hashmap 預設初始容量為16,預設載入因子是0.75 hashmap int initialcapacity 指定初始容量 但預設載入因子為0.75 hashmap int initialcapacity,float ...

HashMap個人總結

1.儲存結構 內部包含了 個 entry 型別的陣列 entry table。transient entry table transient 表示不能被序列化 entry型別儲存著鍵值對。它包含了四個字段,entry 是 個鍊錶。即陣列中的每個位置被當成 個桶,個桶存放 個entry鍊錶。hashm...

HashMap知識總結

問題5 說說hashmap是如何進行擴容的可以嗎?問題6 那hashcode和equals在hashmap中是怎麼用的?jdk1.7的時候使用的是陣列 單鏈表的資料結構。但是在jdk1.8及之後時,使用的是陣列 鍊錶 紅黑樹的資料結構 當鍊表的深度達到8時,也就是預設閾值,會自動擴容,把鍊錶轉換成紅...