ArrayList的自動擴充機制

2021-09-24 12:41:07 字數 1014 閱讀 1316

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

23答案:a

1、arraylist的預設初始容量為10,當然也可以自定義指定初始容量,隨著動態的向其中新增元素,其容量可能會動態的增加,那麼擴容的公式為:

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

比如:初始容量為4,其容量的每次擴充後的新容量為:4->7->11->17->26->...

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

arraylist的建構函式總共有三個:

(1)arraylist()構造乙個初始容量為0 的空列表。在public add add(e e)方法新增乙個元素到空的arraylist物件中時候, 同時將初始容量賦值為

public boolean add(e e)

private void ensurecapacityinternal(int mincapacity)

ensureexplicitcapacity(mincapacity);

}private void ensureexplicitcapacity(int mincapacity)

(2)arraylist(collection<? extends e> c)構造乙個包含指定 collection 的元素的列表,這些元素是按照該 collection 的迭代器返回它們的順序排列的。

(3)arraylist(int initialcapacity)構造乙個具有指定初始容量的空列表。

呼叫的是第三個建構函式,直接初始化為大小為20的list,沒有擴容,所以選擇a

另外與之類似的還有,

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

void addentry(int hash, k key, v value, int bucketindex)

createentry(hash, key, value, bucketindex);

}3、vector的初始大小為10,如果沒有指定每次增長的大小,則預設是翻倍增長。

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

用一道選擇題作為本文的開始吧!arraylist list new arraylist 20 中的list擴充幾次 a.0 b.1 c.2 d.3答案 awww.cppcns.com 1 arraylist的預設初始容量為10,當然也可以自定義指定初始容量,隨著動態的向其中新增元素,其容量可能會動態...

ArrayList自動擴容機制

arraylist 操作的底層其實是object 陣列,對該陣列進行了包裝。arraylist 在建立時若不指定元素個數,會使用預設值 private static final int default capacity 10 內部相當於建立了乙個 object object new object 1...

虛擬機器擴充硬碟安裝筆記

1.用virtualbox把當前 centos dev.vdi 的虛擬硬碟copy乙份。名稱為centos dev copy.vdi 用virtualbox生成乙個虛擬機器硬碟vdi,目前大小是80g。名稱為centos dev 80.vdi 在虛擬機器中設定對應的storage下掛載這兩個虛擬硬碟...