并发修改异常 [英] Concurrent Modification exception
本文介绍了并发修改异常的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一小段代码,它给了我并发修改异常.我不明白为什么我一直得到它,即使我没有看到正在执行的任何并发修改.
I have this little piece of code and it gives me the concurrent modification exception. I cannot understand why I keep getting it, even though I do not see any concurrent modifications being carried out.
import java.util.*;
public class SomeClass {
public static void main(String[] args) {
List<String> s = new ArrayList<>();
ListIterator<String> it = s.listIterator();
for (String a : args)
s.add(a);
if (it.hasNext())
String item = it.next();
System.out.println(s);
}
}
推荐答案
为了避免 ConcurrentModificationException
,你应该这样写你的代码:
To avoid the ConcurrentModificationException
, you should write your code like this:
import java.util.*;
public class SomeClass {
public static void main(String[] args) {
List<String> s = new ArrayList<String>();
for(String a : args)
s.add(a);
ListIterator<String> it = s.listIterator();
if(it.hasNext()) {
String item = it.next();
}
System.out.println(s);
}
}
java.util.ListIterator
允许您在迭代期间修改列表,但不能在创建和使用之间修改.
A java.util.ListIterator
allows you to modify a list during iteration, but not between creating it and using it.
这篇关于并发修改异常的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文