【发布时间】:2020-07-01 17:56:35
【问题描述】:
我正在尝试编写一个程序,如果名称具有特定值,它将从 ArrayList 中删除名称,但我无法做到这一点。
class UserNamesTest {
public static void main(String[] args) {
ArrayList<String> names = new ArrayList<>();
names.add("John");
names.add("Jerry");
names.add("Jim");
names.add("Todd");
for(String name : names) {
if(name.equals("John")) {
System.out.println("true");
names.remove(names.indexOf(name));
}
}
}
}
当我执行这段代码时,我得到一个异常:
Exception in thread "main" java.util.ConcurrentModificationException
at java.util.ArrayList$Itr.checkForComodification(Unknown Source)
at java.util.ArrayList$Itr.next(Unknown Source)
at UserNamesTest.main(UserNamesTest.java:13)
我怎样才能做到这一点?
【问题讨论】:
-
Use this method 以避免在您自己的代码中进行迭代。
标签: java list algorithm for-loop arraylist