關於ArrayList 容量問題

2021-09-08 12:13:24 字數 516 閱讀 9063

arraylist 是實現list 介面的動態陣列,即它的容量大小是可變的。允許包括null 在內的所欲元素。

每個arraylist 例項都有乙個容量,該容量是指用來儲存列表元素的陣列的大小。預設初始容量為10.

隨著arraylist 中元素的增加,它的容量會不端的自動增長。在每次新增新的元素時,arraylist 都會檢查是否需要進行擴容操作,擴容操作帶來資料向新陣列的重新拷貝。所以,如果已知業務資料量,在構造arraylist 時可以 指定乙個初始容量,這樣會減少擴容時資料的拷貝問題。當然在新增大量元素前,應用程式也可以使用ensurecapacity操作來增加arraylist例項的容量,這可以減少遞增式再分配的數量。

具體可以查閱 arraylist 的原始碼

ensurecapacity(),該方法就是arraylist的擴容方法。而每次擴容的容量計算方式

//計算新的容量大小,為當前容量的1.5倍

int newcapacity = (oldcapacity * 3) / 2 + 1;

關於ArrayList初始化時,初始容量的問題

首先來看arraylist的構造方法有哪些 一 arraylist的構造方法 無參構造 傳入指定引數 這個暫時不用管 在arraylist中有乙個elementdate的陣列,arraylist底層就是用object陣列來實現的 這裡還定義了乙個空陣列,在arraylist使用無參構造方法時使用 回...

ArrayList的容量與長度

arraylist有乙個有參構造方法 public arraylist int initialcapacity else if initialcapacity 0 else 也就是我們例項化arraylist時可以這樣寫 arraylistlist new arraylist 30 我第一反應是li...

Java中的ArrayList的容量

list介面的大小可變陣列的實現。實現了所有可選列表操作,並允許包括 null 在內的所有元素。arraylist繼承於list介面,除繼承過來的方法外,還提供一些方法來操作內部用來儲存列表的陣列的大小。每個arraylist例項都有乙個容量。該容量是指用來儲存列表元素的陣列的大小。它總是至少等於列...