ArrayList的remove的乙個坑

2021-09-27 04:03:35 字數 640 閱讀 5447

大家知道下面的**輸出結果是什麼嘛?

public static void main(string args)

system.out.println(set + " " + listint + " " + listinteger);

for (int i = 0; i < 3; i++)

for (integer i = 0; i < 3; i++)

system.out.println(set + " " + listint + " " + listinteger);

}

結果是:

[-3, -2, -1, 0, 1, 2] [-3, -2, -1, 0, 1, 2] [-3, -2, -1, 0, 1, 2]

[-3, -2, -1] [-2, 0, 2] [-3, -2, -1]

但是大家有沒有注意到 listlistint的物件remove(i)之後結果竟然是[-2, 0, 2],為什麼呢?

還要看原始碼:

在每次移除完乙個元素後,就會將集合的size減一,所以第二次rmove時,是在新的集合中查詢下標為i的元素進行移除。

List的IndexOf方法和Remove方法

microsoft位址 list的indexof 方法 如果t是值型別的,就按照比較值的方法從列表的第乙個元素開始逐個匹配,如果t是引用型別,就比較引用是否相同 舉例如下 classa listlista newlist lista.add newa 3 lista.add newa 4 lista...

List的IndexOf方法和Remove方法

list的indexof 方法 如果t是值型別的,就按照比較值的方法從列表的第乙個元素開始逐個匹配,如果t是引用型別,就比較引用是否相同 舉例如下 class a listlista new list lista.add new a 3 lista.add new a 4 lista.add new...

Array List和ArrayList的區別與

定義 public abstract class array icloneable,ilist,icollection,ienumerable,istructuralcomparable,istructuraequatable 陣列在記憶體中是連續儲存的,所以它的索引速度是非常的快,而且賦值與修改元...