概述

HashMap是Java里基本的存儲(chǔ)Key、Value的一個(gè)數(shù)據(jù)類(lèi)型,了解它的內(nèi)部實(shí)現(xiàn),可以幫我們編寫(xiě)出更高效的Java代碼。

本文主要分析JDK1.7中HashMap實(shí)現(xiàn),JDK1.8中的HashMap已經(jīng)和這個(gè)不一樣了,后面會(huì)再總結(jié)。

正文

HashMap概述

HashMap根據(jù)鍵的hashCode值獲取存儲(chǔ)位置,大多數(shù)情況下可以直接定位到它的值,因而具有很快的訪(fǎng)問(wèn)速度,但遍歷順序卻是不確定的。 HashMap最多只允許一條記錄的鍵為null,允許多條記錄的值為null。HashMap非線(xiàn)程安全,即任一時(shí)刻可以有多個(gè)線(xiàn)程同時(shí)寫(xiě)HashMap,可能會(huì)導(dǎo)致數(shù)據(jù)的不一致。如果需要滿(mǎn)足線(xiàn)程安全,可以用 Collections的synchronizedMap方法使HashMap具有線(xiàn)程安全的能力,或者使用ConcurrentHashMap。

HashMap的存儲(chǔ)結(jié)構(gòu)如下圖所示:

Android培訓(xùn),安卓培訓(xùn),手機(jī)開(kāi)發(fā)培訓(xùn),移動(dòng)開(kāi)發(fā)培訓(xùn),云培訓(xùn)培訓(xùn)

延伸閱讀

學(xué)習(xí)是年輕人改變自己的最好方式-Java培訓(xùn),做最負(fù)責(zé)任的教育,學(xué)習(xí)改變命運(yùn),軟件學(xué)習(xí),再就業(yè),大學(xué)生如何就業(yè),幫大學(xué)生找到好工作,lphotoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動(dòng)軟件開(kāi)發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)學(xué)習(xí)是年輕人改變自己的最好方式