Java并发修改异常
我有这段代码,它给了我并发修改异常。即使看不到任何并发修改,我也无法理解为什么继续得到它。
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
,你应该这样编写代码:
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);
}
}
A java.util.ListIterator
允许你在迭代期间修改列表,但不能在创建和使用列表之间进行修改。
以上是 Java并发修改异常 的全部内容, 来源链接: utcz.com/qa/408034.html