并发修改异常(List)
并发修改异常
ConcurrentModificationException
产生原因
迭代器遍历的过程中,通过集合对象修改了集合中的元素长度,造成了迭代器获取元素中判断预期修改值和实际修改值不一致。
解决方案
用for循环遍历,然后用集合对象做对应的操作即可
代码解释
//遍历集合
Interator<String> it = list.iterator();
while(it.hasnext()){
String s = it.next();
if(s.equals("world")){
list.add("javaee");
}
}
//以上代码会产生ConcurrentModificationException情况
//修改后代码
for(int i = 0; i<list.size(); i++){
String s = list.get(i);
if(s.equals("world")){
list.add("javaee");
}
}