一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專(zhuān)注于服務(wù)器技術(shù)及軟件下載分享
分類(lèi)導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語(yǔ)言|JavaScript|易語(yǔ)言|vb.net|

服務(wù)器之家 - 編程語(yǔ)言 - Java教程 - java HashMap擴(kuò)容詳解及實(shí)例代碼

java HashMap擴(kuò)容詳解及實(shí)例代碼

2020-08-13 11:50linsongbin Java教程

這篇文章主要介紹了java HashMap擴(kuò)容詳解及實(shí)例代碼的相關(guān)資料,需要的朋友可以參考下

HashMap擴(kuò)容

前言:

HashMap的size大于等于(容量*加載因子)的時(shí)候,會(huì)觸發(fā)擴(kuò)容的操作,這個(gè)是個(gè)代價(jià)不小的操作。

為什么要擴(kuò)容呢?HashMap默認(rèn)的容量是16,隨著元素不斷添加到HashMap里,出現(xiàn)hash沖突的機(jī)率就更高,那每個(gè)桶對(duì)應(yīng)的鏈表就會(huì)更長(zhǎng),

這樣會(huì)影響查詢(xún)的性能,因?yàn)槊看味夹枰闅v鏈表,比較對(duì)象是否相等,一直到找到元素為止。

為了提升查詢(xún)性能,只能擴(kuò)容,減少hash沖突,讓元素的key盡量均勻的分布。

擴(kuò)容基本點(diǎn)

加載因子默認(rèn)值是0.75

java" id="highlighter_774169">
?
1
static final float DEFAULT_LOAD_FACTOR = 0.75f;

容量的默認(rèn)值是16

?
1
static final int DEFAULT_INITIAL_CAPACITY = 1 << 4; // 等于16

HashMap提供了一個(gè)構(gòu)造參數(shù),可以在創(chuàng)建的時(shí)候指定容量和加載因子。

?
1
public HashMap(int initialCapacity, float loadFactor)

默認(rèn)的情況下,HashMap 的size一旦大于等于16*0.75=12的話,

同時(shí)每個(gè)Entry(或者叫桶)里面至少有一個(gè)元素的時(shí)候就會(huì)進(jìn)行擴(kuò)容。

?
1
2
3
4
5
if ((size >= threshold) && (null != table[bucketIndex])) {
      resize(2 * table.length);
      hash = (null != key) ? hash(key) : 0;
      bucketIndex = indexFor(hash, table.length);
}

擴(kuò)容的時(shí)候,容器容量翻倍

?
1
resize(2 * table.length);

擴(kuò)容的時(shí)候需要重新計(jì)算元素的數(shù)組下標(biāo)

1、重新分配一個(gè)新的Entry數(shù)組
2、重新計(jì)算原來(lái)元素的在新數(shù)組中的下標(biāo)(比較耗資源)

感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!

原文鏈接:http://blog.csdn.net/linsongbin1/article/details/54695986

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 精品精品国产自在现拍 | 青青青国产在线观看 | 日韩亚洲人成在线 | 亚洲精品久久7777777 | 2012中文字幕中字视频 | 久久婷婷五月综合色丁香花 | 星空无限传媒xk8129 | 男女乱淫真视频播放网站 | 91制片厂官网 | 色网在线视频 | 久久内在线视频精品mp4 | 娇妻与公陈峰姚瑶小说在线阅读 | 日韩在线视频免费不卡一区 | 国产亚洲精品一区在线播 | 精品国产人成亚洲区 | jazz欧美人免费xxxxxx | julia ann黑人巨大 | 手机在线免费观看视频 | 视频二区 素人 欧美 日韩 | 国产午夜免费不卡精品理论片 | 色姑娘色综合 | 91短视频版高清在线观看免费 | 男女精品视频 | www.精品在线| 国产一级精品高清一级毛片 | 欧美一区二区三区免费观看视频 | 免费精品99久久国产综合精品 | 91尤物在线 | 99久久精品无码一区二区毛片 | 富士av105| 女子校生下媚药在线观看 | 国产123区在线视频观看 | 日本暖暖视频在线观看 | 无人区在线观看免费视频国语 | 惩罚狠h调教灌满 | 激情综 | 我把寡妇日出水好爽 | 四虎成人免费 | 青草午夜精品视频在线观看 | 免费大片a一级一级 | 大胆人gogo888体艺术在线 |