public static void main(String[] args) {
List<String> list = new ArrayList<String>();
list.add("Value1");
list.add("Value2");
list.add("Value3");
for(String val: list ) {
list.remove(0);
System.out.println(list);
}
}
o\p:[值2,值3] 线程“main”中的异常 java.util.ConcurrentModificationException
这里我尝试同时读取和删除第 0 个元素。 所以它应该给出一个异常。但是我的qn是为什么它在异常之后执行println语句。当它发现异常时,它应该从循环中出来。
最佳答案
此处不应使用 for 循环。使用不会导致异常的迭代器:
ListIterator<String> iterator = list.listIterator();
while (iterator.hasNext()) {
String string = iterator.next();
iterator.remove();
}
关于java - 并发读取并从列表中删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25420577/