欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

java.util.ConcurrentModificationException

程序员文章站 2022-05-23 13:36:54
...

 

在使用增强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();
	}
}