java.util.ConcurrentModificationException

测试线上项目时,不经意发现了这个异常信息。本着程序员该有的精神,跟了一遍代码。

找到了问题的所在。

官方对此异常的解释是:当方法检测到对象的并发修改,但不允许这种修改时,抛出此异常。

系统中代码大意如下:

for (Iterator iter = list.iterator(); iter.hasNext();) {

  Object o = (Object) iter.next();

  list.remove(o);

}

问题就在这个remove上。

程序正在遍历这个list,但是在遍历时缺试图修改这个list,所以抛出此异常。那么在遍历list的时候,想要删除其中的元素应该怎么办呢。

list delList = new ArrayList();

for (Iterator iter = list.iterator(); iter.hasNext();) {

  Object o = (Object) iter.next();

  delList.add(o);

}

list.removeAll(delList);

原文地址:https://www.cnblogs.com/yimiyan/p/3745901.html