文圖簡述
HashMap
中使用的哈希算法
放數(shù)據(jù)
- key.hasCode() 得到鍵的哈希值
- 用哈希值泼返,計算一個下標(biāo)值 index
- 新建 Entry 實例封裝鍵值對數(shù)據(jù)
- 將 Entry 實例放入數(shù)組的 index 位置
4.1. 空位置十气,直接放入 [如圖]
4.2. 不是空位置踩叭,依次用 equals() 比較每一個鍵是否相等
4.2.1. 找到相等的鍵单起,覆蓋原值
4.2.2. 找不到相等的鍵东囚,鏈表連在一起 [如圖]
- 檢查數(shù)組容量是否超過最大負(fù)載率浴麻,容量翻倍 [如圖]
取數(shù)據(jù)
- key.hasCode() 得到鍵的哈希值
- 用哈希值够吩,計算一個下標(biāo)值 index
- 依次用 equals() 比較每一個鍵是否相等
3.1. 找到相等的鍵比然,取出對應(yīng)的值
3.2. 找不到相等的鍵,返回 null 值