看如下代码:
// 遍历集合,得到每一个元素,看有没有"world"这个元素,如果有,我就添加一个"javaee"元素,请写代码实现
List<String> list = new ArrayList<String>();
list.add("hello");
list.add("go");
list.add("world");
list.add("java");
Iterator<String> it = list.iterator();
while (it.hasNext()) {
String s = it.next();
if(s.equals("world")) {
list.add("javaee");
}
}
}
ConcurrentModificationException:当不允许这样的修改时,可以通过检测到对象的并发修改的方法来抛出此异常
会发生报错
Exception in thread "main" java.util.ConcurrentModificationException
at java.util.ArrayList$Itr.checkForComodification(ArrayList.java:901)
at java.util.ArrayList$Itr.next(ArrayList.java:851)
at com.Arr.Demo.main(Demo.java:18)
解决方法
1.
List<String> list = new ArrayList<String>();
list.add("hello");
list.add("go");
list.add("world");
list.add("java");
Iterator<String> it = list.iterator();
for (int l = 0; l < list.size(); l++) {
String s = list.get(l);
if (s.equals("world")){
list.add("goo");
};
}
2.
这里面有一个要注意点
注意画白框的几处代码
List<String> list = new ArrayList<String>();
list.add("hello");
list.add("go");
list.add("world");
list.add("java");
ListIterator<String> it = list.listIterator();
while (it.hasNext()) {
// String s = list.get(l);
String s = it.next();
if (s.equals("world")){
it.add("goo");
};
}