??

簡介

? ? ? ? 本文介紹JDK7與JDK8的HashMap的區別。

JDK7與JDK8的HashMap區別

JDK7

JDK8

數據結構


數組+鏈表。

復雜度:O(n)



數組+鏈表+紅黑樹

鏈表節點數大于8時,鏈表轉為紅黑樹,復雜度降至O(logn)


插入位置

插入鏈表頭部

插入鏈表尾部

hash算法

復雜


簡單。

紅黑樹效率高,提高查詢效率的地方由紅黑樹實現,沒必要像jdk7那么復雜。


擴容機制

多線程可能導致:數據覆蓋、讀出為null、死循環

多線程可能導致:數據覆蓋、讀出為null。不會導致死循環(因為用了尾插)