arraylist與陣列的詳細區別

時間 2022-02-01 17:44:04

1樓:張卅豐

arraylist 是一個佇列,記憶體大小不固定,可以採用add的方法往佇列後新增資料。

陣列是一個固定記憶體大小的佇列,不能擴充。

2樓:使用者十三

不知可不可以這麼理解,arraylist 就是把object陣列進行了包裝,提供了一些便於使用的方法,例如add(),get()等方法

3樓:優遊自如

1:根本不存在一個動態增長的容器供我們使用。所謂集合就是在內部定義一個指定大小的陣列,這個陣列的大小可由capacity屬性進行設定,如果沒有設定,預設是一個0長度的陣列。

當開始新增第一個資料時,陣列的長度會被設為4。

2:當我們呼叫add方法為集合新增元素時,它會判斷集合內部的陣列是否已填充滿,如果填充滿了,就會例項化一個新的陣列,陣列容量為原陣列容量的2倍。然後把原陣列中的資料copy到新的陣列中,然後原陣列會成為垃圾**的物件被gc收集。

3:如果資料量不大或能確定陣列大小的情況下,儘量使用陣列而不是集合,因為多次建立新陣列並copy資料會對效能造成損傷(雖然微乎其微)。

4:如果還有疑問的話,可以定義個集合做下測試,來證明我的說法是否正確

arraylist list = new arraylist();

console.writeline(list.count);

console.writeline(list.capacity);

for(int i =0 ;i <5 ; i++) list.add("hello");

console.writeline(list.count);

console.writeline(list.capacity);

for (int j = 0; j < 5; j++) list.remove("hello");

console.writeline(list.count);

console.writeline(list.capacity);

看看會輸出什麼

總結:arraylist是一個內部控制動態增長的陣列,而且所有引數都是object型別的,而普通陣列(array)則可以指定型別,比如:int intarray = new intarray[10];

陣列和arraylist的區別,陣列 Array 和列表 ArrayList 有什麼區別?什麼時候應該使用Array而不是ArrayList?

arraylist底層是變長陣列維護的,不需要定義其大小,如果長度不夠了就會自動擴充套件為原來長度的一倍 陣列的大小在定義的時候已經是個固定的值,不會自動擴充套件,陣列的效率比集合的效率高,各有側重點。具體如下 一 陣列 優點 在記憶體中時連續的,速度較快,操作簡單。缺點 定義陣列時要定義其長度,不...

陣列指標問題,陣列指標,指標陣列區別 要詳細,超詳細 我區分了好多次了,還是不清楚啊

arr是一維陣列,只是個名字而已,不是指標。q arr 則q 陣列首地址,p q 則p指向q。陣列名在值傳遞時傳遞的是首元素地址,所以很多人把他當做指標,老師往往也不加以區分,但看看這兩個 int arr 100 p arr arr arr 這是成立的,左邊是陣列首元素地址,右邊對整個陣列取地址得到...

C 陣列定義與初始化,C 關於陣列的賦值與初始化的問題

int b1 是合法的,系統會自動給陣列b1分配3個整型數的空間大小,因為它是一維陣列,大小可以由後面確定。int b2 它是二維陣列,我們至少需要定義它的最高維的大小。也就是至少是b2 4 想想你什麼都沒定義,我怎麼通過後面的賦值來判斷b2陣列是幾行幾列呢?最後兩組是指標,相信看看指標就會知道,指...