??
簡介? ? ? ? 本文介紹JDK7與JDK8的HashMap的區別。
JDK7與JDK8的HashMap區別項 | JDK7 | JDK8 |
數據結構 | 數組+鏈表。 復雜度:O(n) | 數組+鏈表+紅黑樹 鏈表節點數大于8時,鏈表轉為紅黑樹,復雜度降至O(logn) |
插入位置 | 插入鏈表頭部 | 插入鏈表尾部 |
hash算法 | 復雜 | 簡單。 紅黑樹效率高,提高查詢效率的地方由紅黑樹實現,沒必要像jdk7那么復雜。 |
擴容機制 | 多線程可能導致:數據覆蓋、讀出為null、死循環 | 多線程可能導致:數據覆蓋、讀出為null。不會導致死循環(因為用了尾插) |