有人可以帮我解决我的代码问题吗?错误是:
Exception in thread "main" java.util.ConcurrentModificationException
at java.util.HashMap$HashIterator.nextEntry(HashMap.java:894)
at java.util.HashMap$KeyIterator.next(HashMap.java:928)
at javaTest.Main.main(Main.java:18)
代码是:
public static void main(String arg[]) {
job.add("a");
job.add("b");
HashSet<String> klonasOnJob = job;
for (String p : klonasOnJob) {
if (p != "b") {
} else {
job.remove(p);
}
}
答案 0 :(得分:1)
如果在迭代集合时修改集合(在您的情况下通过删除元素),大多数集合将会中断并抛出ConcurrentModificationException
。改为使用迭代器的remove()
方法。
在您的情况下,相关片段将是:
Iterator<String> it = klonasOnJob.iterator();
while (it.hasNext()) {
String p = it.next();
if (p != "b") {
} else {
it.remove();
}
}