从列表中删除某些对象时出现“java.util.ConcurrentModificationException”

时间:2013-06-28 05:43:17

标签: java

如果符合条件,我需要从列表中删除一些对象。

但我得到java.util.ConcurrentModificationException

这是我的代码:

collegeList.addAll(CollegeManager.findByCollegeID(stateCode, districtCode));

for(College clg:collegeList){
    if(!clg.approve()){
        collegeList.remove(clg);
    }
}

2 个答案:

答案 0 :(得分:11)

在以这种方式迭代元素时,您无法删除元素。请改用Iterator

Iterator<College> iter = collegeList.iterator();
while(iter.hasNext()) {
    College clg = iter.next();
    if(!clg.approve()) {
        iter.remove();
    }
}

答案 1 :(得分:0)

您需要使用Iterator来迭代List并使用Iterator#remove()删除对象。