转载自:https://www.cnblogs.com/dolphin0520/p/3933551.html
异常出现的背景:
例子大概是这个样子,也适用于java开发
for (User user : userArrayList) {
if (user.getPersonId().equals(10)) {
userArrayList.remove(user);
}
}
然后就报错。
根据原作者的分析,对Vector、ArrayList在迭代的时候如果同时对其进行修改就会抛出java.util.ConcurrentModificationException异常。
解决方法之一:
Iterator<User> iterator=userArrayList.iterator();
while (iterator.hasNext()){
User user=iterator.next();
if (user.getPersonId().equals(10)){
iterator.remove();
}
}
说明:userArrayList是一个ArrayList表,User是关于用户信息的一个类,目的是删除Id=10的用户。