久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁技術(shù)文章
文章詳情頁

Java中HashMap的初始容量設(shè)置方式

瀏覽:14日期:2022-08-10 11:09:13
Java中HashMap的初始容量設(shè)置

根據(jù)阿里巴巴Java開發(fā)手冊上建議HashMap初始化時設(shè)置已知的大小,如果不超過16個,那么設(shè)置成默認大小16:

集合初始化時, 指定集合初始值大小。

說明:

HashMap使用HashMap(int initialCapacity)初始化

正例:

initialCapacity = (需要存儲的元素個數(shù) / 負載因子) + 1。注意負載因子(即loader factor)默認為0.75, 如果暫時無法確定初始值大小,請設(shè)置為16(即默認值)。

反例:

HashMap需要放置1024個元素,由于沒有設(shè)置容量初始大小,隨著元素不斷增加,容量7次被迫擴大,resize需要重建hash表,嚴重影響性能。

而對于為什么負載因子是0.75,答案可以在《數(shù)據(jù)結(jié)構(gòu)與算法分析 Java語言描述》的散列章節(jié)中找到

Java HashMap的指定初始值大小和自動擴容HashMap指定初始值大小

指定初始值大小應(yīng)為2的冪。

如果指定的初始值不是2的冪,則HashMap的容量為大于指定初始值的2的冪;如果不指定,容量默認為16。

HashMap自動擴容

當(dāng)HashMap的鍵值對個數(shù)大于容量的75%時,HashMap的容量擴大一倍。

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Java
相關(guān)文章:
主站蜘蛛池模板: 漠河县| 孟州市| 吴堡县| 施甸县| 玉环县| 西吉县| 北辰区| 二连浩特市| 海城市| 五峰| 福泉市| 沙洋县| 泽州县| 社旗县| 乌兰察布市| 称多县| 灵丘县| 太和县| 墨竹工卡县| 郓城县| 曲沃县| 涞源县| 苍山县| 米泉市| 穆棱市| 庐江县| 仙游县| 五河县| 德兴市| 沙洋县| 横峰县| 漳浦县| 化德县| 北宁市| 青海省| 都匀市| 淳安县| 山东| 安龙县| 东乌珠穆沁旗| 响水县|