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

2022-10-08 13:15:11 字數 920 閱讀 9164

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

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

a.0

b.1

c.2

d.3答案:awww.cppcns.com

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

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

比如:初始容量為4,其容量的每次擴充後的新容量為:4->6->9->13->1程式設計客棧9->…

ciebhadwc

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

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

(1)arraylist()構造乙個初始容量為 10 的空列表。

(2)arraylist(collection extends e> c)構造乙個包含指定 co程式設計客棧llection 的元素的ciebhadwc列表,這些元素是按照該 collection 的迭代器返回它們的順序排列的。

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

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

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

另外與之類似的還有,

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擴充幾次01 23答案 a 1 arraylist的預設初始容量為10,當然也可以自定義指定初始容量,隨著動態的向其中新增元素,其容量可能會動態的增加,那麼擴容的公式為 新容量 舊容量 2 舊容量 1 比如 初始容量為4,其...

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下掛載這兩個虛擬硬碟...