更新時間:2022-04-22 09:46:08 來源:動力節點 瀏覽789次
HashMap,一個很常用的集合,Key、Value格式,就是哈希表的具體體現
1.public HashMap(int initialCapacity, float loadFactor)
2.public HashMap(int initialCapacity)
3.公共HashMap()
第一種初始化方法中,第一個參數是初始化大小,也就是數組的大小,數組的大小呢?什么數組大小?我們先來看一段代碼:
從上面的代碼可以推斷,HashMap其實是一個“鏈表哈希”的數據結構,也就是數組和鏈表的組合。具體轉換圖為:
說明:哈希值數組的中值來自map.put(key, value)中的key。首先根據key,計算出對應的hash值。如果hash相同,則判斷后續鏈表中是否存在相同的key。如果不是,則添加一個新值,否則直接覆蓋原值并返回
當然,如果是添加的話,需要判斷長度是否大于初始大小。如果大于原來的長度,需要擴容到原來的兩倍大小,然后重新計算key在鏈表中的位置,重新創建一個Entry,指向數組的哈希桶索引Location
以上就是關于“小白必看:HashMap底層實現原理”的介紹,大家如果對此比較感興趣,想了解更多相關知識,不妨來關注一下動力節點的HashMap底層實現原理視頻教程,里面的課程內容從淺到深,通俗易懂,即使沒有基礎也可以聽懂,希望對大家的學習能夠有所幫助。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習