gpt4 book ai didi

java - 当从每个循环内部删除 ArrayList 的一个元素时。它打破了循环

转载 作者:行者123 更新时间:2023-12-01 08:05:10 25 4
gpt4 key购买 nike

当从 foreach 循环内部删除 ArrayList 的元素时。它打破了循环。
抛出并发修改异常
我的问题是为什么它会打破循环。

代码。

ArrayList gStudyLst=getLst();
int recordCount=0;
for(String study : gStudyLst){
if(++recordCount < 10){
if(generateFile(study)){
gStudyLst.remove(study); // there its break throw ConcurrentModificationException
}else{
System.out.println("File not generated"):
gStudyLst.clear();
return false;
}
}
}else{
return true;
}
}

最佳答案

使用Iterator避免ConcurrentModificationException

Iterator 接口(interface)的 Java 文档说:

Iterators allow the caller to remove elements from the underlying collection during the iteration with well-defined semantics.

这是一个例子:

Iterator<String> iter = myArrayList.iterator();

while (iter.hasNext()) {
String str = iter.next();

if (someCondition)
iter.remove();
}

关于java - 当从每个循环内部删除 ArrayList 的一个元素时。它打破了循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22317701/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com