**:
list介面的大小可變陣列的實現。實現了所有可選列表操作,並允許包括 null 在內的所有元素。
arraylist繼承於list介面,除繼承過來的方法外,還提供一些方法來操作內部用來儲存列表的陣列的大小。
每個arraylist例項都有乙個容量。該容量是指用來儲存列表元素的陣列的大小。它總是至少等於列表的大小。隨著向arraylist中不斷新增元素,其容量也自動增長。並未指定增長策略的細節,因為這不只是新增元素會帶來分攤固定時間開銷那樣簡單。
arraylist是經常會被用到的,一般情況下,使用的時候會像這樣進行宣告:
list arraylist = new arraylist();
如果像上面這樣使用預設的構造方法,初始容量被設定為10。當arraylist中的元素超過10個以後,會重新分配記憶體空間,使陣列的大小增長到16。
可以通過除錯看到動態增長的數量變化:10->16->25->38->58->88->...
也可以使用下面的方式進行宣告:
list arraylist = new arraylist(4);
將arraylist的預設容量設定為4。當arraylist中的元素超過4個以後,會重新分配記憶體空間,使陣列的大小增長到7。
可以通過除錯看到動態增長的數量變化:4->7->11->17->26->...
那麼容量變化的規則是什麼呢?請看下面的公式:
((舊容量 * 3) / 2) + 1
注:這點與c#語言是不同的,c#當中的演算法很簡單,是翻倍。
一旦容量發生變化,就要帶來額外的記憶體開銷,和時間上的開銷。
所以,在已經知道容量大小的情況下,推薦使用下面方式進行宣告:
list arraylist = new arraylist(capacity_size);
即指定預設容量大小的方式。
後面還有,但我看的不是很懂,就沒轉,看具體的話點鏈結
Java中的ArrayList的容量
list介面的大小可變陣列的實現。實現了所有可選列表操作,並允許包括 null 在內的所有元素。arraylist繼承於list介面,除繼承過來的方法外,還提供一些方法來操作內部用來儲存列表的陣列的大小。每個arraylist例項都有乙個容量。該容量是指用來儲存列表元素的陣列的大小。它總是至少等於列...
Java中的ArrayList的容量
list介面的大小可變陣列的實現。實現了所有可選列表操作,並允許包括 null 在內的所有元素。arraylist繼承於list介面,除繼承過來的方法外,還提供一些方法來操作內部用來儲存列表的陣列的大小。每個arraylist例項都有乙個容量。該容量是指用來儲存列表元素的陣列的大小。它總是至少等於列...
Java中的ArrayList的容量
list介面的大小可變陣列的實現。實現了所有可選列表操作,並允許包括 null 在內的所有元素。arraylist繼承於list介面,除繼承過來的方法外,還提供一些方法來操作內部用來儲存列表的陣列的大小。每個arraylist例項都有乙個容量。該容量是指用來儲存列表元素的陣列的大小。它總是至少等於列...