遍历和arraylist并删除指定索引处的元素

我正在尝试一个练习,在该练习中,我将1000个元素添加到arraylist中,然后再次从列表中系统地删除它们(通过指定索引)。其背后的想法是比较LinkedList和ArrayList的性能。

int totalObjects = 0;

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

{

totalObjects += 1;

al.add("Object " + totalObjects);

}

System.out.println("The Arraylist size is " + al.size());

如果我执行以下操作,那么只有一半的元素会被删除…为什么呢?

for(int index = 0; index < al.size(); index++)

{

al.remove(index);

}

System.out.println("The Arraylist size after removal is " + al.size());

亲切的问候阿里安

回答:

发生这种情况是因为您要通过删除来更改索引。如果删除元素0,则元素1现在变为元素0。现在,当您下次删除1时,该元素曾经是元素2,而元素1仍然存在于索引0。

避免这种情况的最简单方法是从头到尾循环。

或者,您可以继续删除索引0,直到ArrayList为空。

以上是 遍历和arraylist并删除指定索引处的元素 的全部内容, 来源链接: utcz.com/qa/408973.html

回到顶部