国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - java HashMap擴容詳解及實例代碼

java HashMap擴容詳解及實例代碼

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

這篇文章主要介紹了java HashMap擴容詳解及實例代碼的相關資料,需要的朋友可以參考下

HashMap擴容

前言:

HashMap的size大于等于(容量*加載因子)的時候,會觸發擴容的操作,這個是個代價不小的操作。

為什么要擴容呢?HashMap默認的容量是16,隨著元素不斷添加到HashMap里,出現hash沖突的機率就更高,那每個桶對應的鏈表就會更長,

這樣會影響查詢的性能,因為每次都需要遍歷鏈表,比較對象是否相等,一直到找到元素為止。

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

擴容基本點

加載因子默認值是0.75

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

容量的默認值是16

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

HashMap提供了一個構造參數,可以在創建的時候指定容量和加載因子。

?
1
public HashMap(int initialCapacity, float loadFactor)

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

同時每個Entry(或者叫桶)里面至少有一個元素的時候就會進行擴容。

?
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);
}

擴容的時候,容器容量翻倍

?
1
resize(2 * table.length);

擴容的時候需要重新計算元素的數組下標

1、重新分配一個新的Entry數組
2、重新計算原來元素的在新數組中的下標(比較耗資源)

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

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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 黄色免费视频 | 久久中文字幕一区二区三区 | 一本大的之伊人 | 国产精品一卡二卡 | 午夜精品一区二区三区在线视频 | 羞羞网站| 欧美一区二区三区xxxx监狱 | 久久久91精品国产一区二区三区 | 一本大道av日日躁夜夜躁 | 久久影院久久 | 色噜噜狠狠一区二区三区狼国成人 | 国内成人免费视频 | 日本v在线观看 | 黄在线看 | 久久久久久国产精品美女 | 在线免费观看av电影 | 久久久综合网 | 欧美日韩在线一区 | 999精品一区| 国产成人精品一区二区三区网站观看 | 亚洲精品久久久久久久久久久 | 日韩成人在线视频 | 亚洲自拍偷拍网 | 快色视频在线观看 | 懂色一区| 久久久xxx | 亚洲视频第一页 | 亚洲国产精品久久久 | 一区二区三区高清不卡 | 成人在线欧美 | 国产成人精品免费视频大全最热 | 免费毛片视频 | 亚洲欧美另类久久久精品2019 | 国产精品自拍视频 | 超碰97人人干 | 日韩免费在线 | 亚洲精品久久久久久久久久久 | 激情一区| 久久免费精品 | 亚洲欧美日韩国产综合精品二区 | 日韩有码av |