java.util.ConcurrentModificationException
程序员文章站
2024-03-25 15:18:28
...
在使用增强for循环遍历List时如果在循环中执行remove会报 java.util.ConcurrentModificationException异常。
有两种解决办法:
1.在循环遍历时先将需要删除的元素用另一个List包装起来,等遍历结束再remove掉。示例如下:
List<Group> delList = new ArrayList<Group>();//用来装需要删除的元素
for(Group g:list){
if(g.getId()>5){
delList.add(g);
}
}
list.removeAll(delList);//遍历完成后执行删除
2.使用Iterator迭代器来遍历集合,并通过迭代器的remove方法来删除指定的元素。示例如下:Iterator<Group> it = list.iterator();
while(it.hasNext()){
if(it.next().getId()>5){
it.remove();
}
}
推荐阅读
-
java.util.ConcurrentModificationException
-
java.util.ConcurrentModificationException
-
出现java.util.ConcurrentModificationException 问题及解决办法
-
出现java.util.ConcurrentModificationException 问题及解决办法
-
Java集合:arraylist及java.util.ConcurrentModificationException
-
关于java List的remove方法导致的异常java.util.ConcurrentModificationException
-
java.util.ConcurrentModificationException详解
-
java.util.ConcurrentModificationException
-
Caused by: java.util.ConcurrentModificationException
-
java.util.ConcurrentModificationException