ArrayList擴容機制怎樣?

2022-07-03 10:15:10 字數 812 閱讀 2939

1.arraylist每次擴容是原來得1.5倍。

2.陣列進行擴容時,會將老資料中得元素重新拷貝乙份道新的陣列中,每次陣列容量得增長大於時原用量得1.5倍。

3.代價是很高得,因此再實際使用時,我們因該避免陣列容量得擴張。盡可能避免資料容量得擴張。盡可能,就至指定容量,避免陣列擴容的發生。

4.建立方式不同,容量不同。

初始化方式

容量數量變化

list arraylist = new arraylist();

初始陣列容量為10

10->15->22->33->49->74->...

list arraylist = new arraylist(4);

44->6->9->13->19->...

斷點看擴容情況:list arraylist = new arraylist();

public

class

testarraylist

list.add(i);

if (i == 1)

if (i == 11)

if (i == 16)

}}}

斷點看擴容情況:

1

public

class

testarraylist1

1617

list.add(i);

1819

if (i == 5)

2425

if (i == 7)

3031}32

33}3435 }

ArrayList擴容機制

1.成員變數 預設給定的初始容量 private static final int default capacity 10 無參構造器中所使用到的空陣列例項 private static final object empty elementdata 有參構造器中所使用到的空陣列例項 private ...

ArrayList擴容機制

arraylist實現了list介面。它是乙個可調整大小的陣列,可以用來存放各種形式的資料。並提供了包括crud在內的多種方法可以對資料進行操作,但是它不是執行緒安全的。list擴容實現步驟總的來說就是分兩步 陣列定義的時候,因為需要給它分配連續的記憶體空間,需要預先指定其大小。因此當存放的資料大於...

ArrayList動態擴容機制

初始化 有三種方式預設的構造器,將會以預設的大小來初始化內部的陣列 public arraylist 用乙個icollection物件來構造,並將該集合的元素新增到arraylist public arraylist collection c 用指定的大小來初始化內部的陣列 public array...