目录
1、List的循环删除满足某条件的项
1.1 问题
List删除某项的时候,一般可以使用list.remove()方法,这在不循环的时候是可行的。但当涉及到循环删除一个List中满足某条件的项的时候,使用普通遍历会出现删除不完全的问题,使用增强遍历会出现报错的情况,如下示例代码:普通遍历删除:
for(int i=0;i(<)pairList.size();i++){
PairPerson pp=pairList.get(i);
if(pp.getCulmulatedTime()<30){
pairList.remove(i);
}
}
//小于号加括号是因为mackdown语法不熟悉,不知道怎么写代码块
//删除会出现跳过多个满足条件的项导致山和醋不完全的问题增强遍历删除:
for(PairPerson pp:pairList){
if(pp.getCulmulatedTime()<30){
pairList.remove(i);
}
}
//会报ConCurrentModificationException异常(网上有说第一元素的删除成功,第二个才报错)1.2 处理方式
使用Iterator迭代循环并删除满足条件项,可以完美解决这个问题f