java.util.ConcurrentModificationException(并发修改异常)
原因:读取集合的过程中进行了数据操作,说白了就是在遍历的同时进行了删除操作。
下面是代码示例:
List list = new ArrayList();
for (Object o : list) {
list.remove(o);// 在遍历集合的同时删除元素就会出现这种异常
}解决方案:如果想删除集合中某一个元素,可以在遍历的时候将元素记录(取出),
在遍历的外面将记录(取出)的元素进行删除。
下面是代码示例:
Object object = new Object();// 将对象声明在外面
List list = new ArrayList();
for (Object o : list) {
object = o;// 将要删除的对象取出
}
list.remove(object);// 在循环外面将取出的对象进行删除
当在遍历Java集合如ArrayList时尝试修改集合,会导致ConcurrentModificationException。避免这个异常的方法是在遍历过程中不直接修改集合,而是存储要删除的元素,然后在遍历外部执行删除操作。

被折叠的 条评论
为什么被折叠?



