HashMap在我們的工作中應用的非常廣泛,在工作面試中也經(jīng)常會被問到,對于這樣一個重要的集合模型我們有必要弄清楚它的使用方法和它底層的實現(xiàn)原理。HashMap是通過key-value鍵值對的方式來存儲數(shù)據(jù)的,通過put、get方法實現(xiàn)鍵值對的快速存取,這是HashMap最基本的用法。HashMap底層是通過數(shù)組和鏈表相結(jié)合的混合結(jié)構(gòu)來存放數(shù)據(jù)的。我們通過分析底層源碼來詳細了解一下HashMap的實現(xiàn)原理。

      1、HashMap的初始化

      在HashMap實例化時我們要了解兩個概念:初始容量和加載因子。HashMap是基于哈希表的Map接口實現(xiàn),初始容量是哈希表在創(chuàng)建時的容量。加載因子是哈希表在其容量自動增加之前可以達到多滿的一種尺度。當哈希表中的條目數(shù)超過了加載因子與當前容量的乘積時,則要對該哈希表進行rehash操作(即重建內(nèi)部數(shù)據(jù)結(jié)構(gòu)),從而哈希表將具有大約兩倍于當前容量的新的容量。

       photoshop培訓,電腦培訓,電腦維修培訓,移動軟件開發(fā)培訓,網(wǎng)站設計培訓,網(wǎng)站建設培訓

       以上是Java API中HashMap的構(gòu)造方法,其源碼如下:

       

photoshop培訓,電腦培訓,電腦維修培訓,移動軟件開發(fā)培訓,網(wǎng)站設計培訓,網(wǎng)站建設培訓

 1 static final int DEFAULT_INITIAL_CAPACITY = 16;//默認初始容量16 2 static final int MAXIMUM_CAPACITY = 1 << 30;//定義最大容量 3 static final float DEFAULT_LOAD_FACTOR = 0.75f;//默認負載因子0.75 4&n
        
		

網(wǎng)友評論