HashMap 1.7 與 1.8 的 區別,說明 1.8 做了哪些優化,如何優化的


JDK1.7用的鏈表散列結構,JDK1.8用的紅黑樹

在擴充HashMap的時候,JDK1.7的重新計算hash,

JDK1.7只需要看看原來的hash值新增的那個bit是1還是0就好了,是0的話索引沒變,是1的話索引變成“原索引+oldCap;

DK1.7中rehash的時候,舊鏈表遷移新鏈表的時候,如果在新表的數組索引位置相同,則鏈表元素會倒置,但是從上圖可以看出,

JDK1.8不會倒置

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM