HashMap簡述

在JDK中,HashMap是存儲鍵值對用的比較多的一個類。

其基于哈希散列表計算位置來達到鍵不重復存儲。

其內部數(shù)據(jù)結構是數(shù)組(散列桶)+鏈表+紅黑樹,

數(shù)組是基礎存儲,存儲位置為計算出來的hash值和數(shù)組長度減一相與,而數(shù)組長度一直都為2的整數(shù)冪。

鏈表是遇到哈希碰撞時,即數(shù)組同一下標要存放第二個值的時候,會在原值后面鏈接上下一個鍵值對。

紅黑樹是在鏈表過長(默認大于8)時進行的結構重組,將鏈表轉換為紅黑樹,加快搜索效率。

HashMap的聲明

public class HashMap<K,V> extends AbstractMap<K,V>    implements Map<K,V>, Cloneable, Serializable

擴展Map接口代表這個類是存儲鍵值對的數(shù)據(jù)結構。

HashMap的域

在以往的版本中,是用Entry<K,V>來表示一個鍵值對結點的,而后來引入了紅黑樹表示的節(jié)點(TreeNode),就產(chǎn)生了新的表示方法(Node)。

萬碼學堂,電腦培訓,計算機培訓,Java培訓,JavaEE開發(fā)培訓,青島軟件培訓,軟件工程師培訓 

延伸閱讀

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