我正在尝试使用以下代码打印数组列表的所有元素并同时将它们从数组中删除。
while(!duplicates.isEmpty()){
outpurWriter.println(duplicates.remove(0));
}
当数组列表尺寸较小时它可以工作,但如果数组列表包含 400000 个元素,它会在前几千个元素后崩溃。
我已经更改了代码,只使用 for 循环来打印每个元素,然后设置 arraylist = null,但只是想知道我最初使用的代码有什么问题。
干杯
最佳答案
试试这个,
public static void main(String[] args)
{
List<String> listString = new ArrayList<String>();
listString.add("a");
listString.add("b");
listString.add("c");
listString.add("d");
System.out.println("Size of arraylist before remove: "+listString.size());
ListIterator<String> listIterator = listString.listIterator();
while (listIterator.hasNext())
{
listIterator.next();
listIterator.remove();
}
System.out.println("Size of arraylist after remove: "+listString.size());
}
如果您有更多插入和删除操作的需求,请使用链表
关于java - 为什么 arraylist 循环在删除元素时崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17022105/