HashMap的結構,1.7和1.8的區別

不同點: 1.JDK1.7用的是頭插法,而JDK1.8及之後使用的都是尾插法,那麼他們爲什麼要這樣做呢?因爲JDK1.7是用單鏈表進行的縱向延伸,當採用頭插法時會容易出現逆序且環形鏈表死循環問題。但是在JDK1.8之後是因爲加入了紅黑樹使用尾插法,能夠避免出現逆序且鏈表死循環的問題。 2.擴容後數據存儲位置的計算方式也不一樣:1. 在JDK1.7的時候是直接用hash值和需要擴容的二進制數進行&(
相關文章
相關標籤/搜索