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

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

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

服務器之家 - 編程語言 - Java教程 - ArrayList的自動擴充機制實例解析

ArrayList的自動擴充機制實例解析

2021-01-24 11:16ysk_xh_521 Java教程

本文主要介紹了ArrayList的自動擴充機制,由一個題目切入主題,逐步向大家展示了ArrayList的相關內容,具有一定參考價值,需要的朋友可以了解下。

用一道選擇題作為本文的開始吧!

ArrayList list = new ArrayList(20);中的list擴充幾次

A.0
B.1
C.2
D.3

答案:A

1、ArrayList的默認初始容量為10,當然也可以自定義指定初始容量,隨著動態的向其中添加元素,其容量可能會動態的增加,那么擴容的公式為:

新容量 = 舊容量/2 + 舊容量

比如:初始容量為4,其容量的每次擴充后的新容量為:4->6->9->13->19->…

即每次擴充至原有基礎的1.5倍

ArrayList的構造函數總共有三個:

(1)ArrayList()構造一個初始容量為 10 的空列表。
(2)ArrayList(Collection<? extends E> c)構造一個包含指定 collection 的元素的列表,這些元素是按照該 collection 的迭代器返回它們的順序排列的。
(3)ArrayList(int initialCapacity)構造一個具有指定初始容量的空列表。

調用的是第三個構造函數,直接初始化為大小為20的list,沒有擴容,所以選擇A

如果初始化為ArrayList(0),則會在新容量計算完畢后,增加至1;

另外與之類似的還有,

2、HashMap的初始大小為16,增長時,直接容量翻番,如源代碼。

?
1
2
3
4
5
6
7
8
void addEntry(int hash, K key, V value, int bucketIndex) {
    if ((size >= threshold) && (null != table[bucketIndex])) {
      resize(2 * table.length);//原容量2倍
      hash = (null != key) ? hash(key) : 0;
      bucketIndex = indexFor(hash, table.length);
    }
    createEntry(hash, key, value, bucketIndex);
}

3、Vector的初始大小為10,如果沒有指定每次增長的大小,則默認是翻倍增長。

總結

以上就是本文關于ArrayList的自動擴充機制實例解析的全部內容,希望對大家有所幫助。有什么問題可以隨時留言,小編會及時回復大家的,感謝朋友們對本站的支持!

原文鏈接:http://blog.csdn.net/ysk_xh_521/article/details/77529198

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产成人综合一区精品 | 水野朝阳厨房系列在线观看 | 人阁色第四影院在线观看 | 国产福利资源网在线观看 | 全黄毛片| 国产精品理论片 | 日韩一区二三区无 | www红色一片在线观看版 | 精品午夜寂寞影院在线观看 | 无人在线高清观看 | 青草碰人人澡人人澡 | 欧美亚洲天堂 | 精品一区二区三区在线成人 | 国产hd老太婆 | 成人资源在线观看 | 男人女人日批 | 边吃胸边膜下刺激免费男对女 | 波多野结衣在线中文 | 久久青青草原综合伊人 | 97国产蝌蚪视频在线观看 | 99视频一区| 动漫美女3d被爆漫画 | 国产高清精品自在久久 | 亚洲福利一区二区精品秒拍 | x8x8在线永久免费观看 | 国精视频一区二区视频 | 四虎最新永久在线精品免费 | 亚洲欧美日韩在线观看看另类 | 男人天堂网av | 欧美va在线播放免费观看 | 亚洲一二区视频 | 亚洲午夜精品久久久久久抢 | 日韩一区二区不卡 | 东方影视欧美天天影院 | 人成午夜免费大片在线观看 | 奇米影视先锋 | 久久热这里面只有精品 | 免费视频一级片 | 欧美a级v片在线观看一区 | 扒开女人下面 | 国模一区二区三区视频一 |