HashMap知識點簡記

HashMap知識點

  1. hashmap的默認初始長度是16
  2. hashmap的數據結構包括 初始數組、鏈表、紅黑數
  3. 數組容量爲2的整數倍:提高運算速度、增加散列度,降低衝突、減少內存碎片
  4. 插入位置:pos=key%size計算位置
  5. hash函數與pos定位:hashchode的高16位與低16位進行異或求模,增加散列度,降低衝突
  6. 插入衝突:通過單鏈表解決衝突,如果鏈表過長(TREEIFY_THRESHOLD=8),進行單鏈表和紅黑樹的轉換以提高查詢速度
  7. 紅黑樹最小最小容量64
  8. 新節點插入鏈表時,使用的是“頭插法”(假定後插入的數據被查找的可能性更大)
  9. 擴容:達到容量的0.75倍時進行X2擴容
  10. 擴容後數據排布:要麼原位置、要麼原下標+原容量的位置
  11. 序列化:只存儲數組的容量、實際節點數量和各個節點的key、value值

後續學習的知識點

  • 位移運算、取模、高位與
  • 紅黑樹

Java 8系列之重新認識HashMap
剖析HashMap源碼
什麼是HashMap?

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章