遍历和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