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

回到顶部