近日在做一个Hibernate 删除一个Set集合操作的时候,需要Iterator遍历一下Set集合对符合条件的的对象进行删除,使用Set.remove(object); 再Iterator.next()遍历的时候会报java.util.ConcurrentModificationException异常,后经查找使用Iterator.remove()可以,下面是示例代码:
Set privilegeSet = role.getPrivileges(); //返回一个Set
Iterator it = privilegeSet.Iterator();
while(it.hasNext()){
Privilege p = (Privilege)it.next();
if(判断条件){
privilegeSet.remove(p);
}
}
修改后:
Set privilegeSet = role.getPrivileges(); //返回一个Set
Iterator it = privilegeSet.Iterator();
while(it.hasNext()){
Privilege p = (Privilege)it.next();
if(判断条件){
it.remove();
}
}
java.util.ConcurrentModificationException异常
最新推荐文章于 2024-05-30 13:36:00 发布