??
簡介? ? ? ? 本文介紹JDK7與JDK8的HashMap的區(qū)別。
JDK7與JDK8的HashMap區(qū)別項(xiàng) | JDK7 | JDK8 |
數(shù)據(jù)結(jié)構(gòu) | 數(shù)組+鏈表。 復(fù)雜度:O(n) | 數(shù)組+鏈表+紅黑樹 鏈表節(jié)點(diǎn)數(shù)大于8時(shí),鏈表轉(zhuǎn)為紅黑樹,復(fù)雜度降至O(logn) |
插入位置 | 插入鏈表頭部 | 插入鏈表尾部 |
hash算法 | 復(fù)雜 | 簡單。 紅黑樹效率高,提高查詢效率的地方由紅黑樹實(shí)現(xiàn),沒必要像jdk7那么復(fù)雜。 |
擴(kuò)容機(jī)制 | 多線程可能導(dǎo)致:數(shù)據(jù)覆蓋、讀出為null、死循環(huán) | 多線程可能導(dǎo)致:數(shù)據(jù)覆蓋、讀出為null。不會(huì)導(dǎo)致死循環(huán)(因?yàn)橛昧宋膊澹?/p> |