ArrayList集合remove原始碼

2021-10-22 14:12:38 字數 658 閱讀 4498

remove的原始碼比較簡單,但是有

public e remove

(int index)

rangecheck方法就是檢視index是否超過size,有的話就丟擲異常,modcount是修改的次數,然後取出陣列中下標為index的元素後面返回,開始移動陣列,也就是把要刪掉元素後面所有的元素全部往前挪一格,nummoved就是移動元素的個數。

我們再看一下另一種remove

public

boolean

remove

(object o)

}else

}return

false

;}

這個是移除物件,**中根據o是否為null做不同操作,但是基本都是一樣的,就是判斷集合中元素有沒有相等的,我們看下fastremove方法

private

void

fastremove

(int index)

**也是一樣的,就是移除後把後面的元素全部往前挪一格位置。

總結arraylist中的remove就是把要刪除元素後面的元素整體往前挪乙個下標的位置,覆蓋掉要被移除的元素。

Java集合 ArrayList集合

以陣列實現。節約空間,但是陣列有容量限制。超出限制時會增加50 容量,用system.arraycopy 複製到新的陣列,因此最好能給出陣列大小的預估值。預設第一次插入元素時建立大小為10 的陣列。按照陣列下標來訪問元素 get i set i,e 的效能很高,這是陣列的基本優勢。直接在陣列末尾加入...

ArrayList 集合詳解

1.底層資料結構是陣列 2.預設陣列大小是10 3.保證了資料的有序性,按照插入順尋來儲存 4.查詢效率高,基於陣列索引來定位資料 5.集合擴容每次擴容為原大小的1.5倍.6.集合資料可以重 trimtosize 作用是去掉預留元素的位置,記憶體緊張的時候用 ensurecapacity int n...

ArrayList集合使用

arraylist 和陣列區別 集合長度可以隨意改變,型別也可以隨意的新增,但陣列不能。集合的方法 arraylist 不是乙個靜態類,所以在使用它之前應例項化該類 arraylist list new arraylist 新增元素 list.add 1 新增集合 list.addrange new...