- 普通for循环,可以删除,但是索引要i- -
- 迭代器,可以删除,但是必须使用迭代器自身的remove方法,否则会出现并发修改异常
- 增强for循环不能删除
ArrayList<String> list = new ArrayList<String>();
list.add("a");
list.add("b");
list.add("b");
list.add("c");
list.add("d");
demo1(list);
System.out.println(list);
第一种普通for循环:
public static void demo1(ArrayList List){
for(int i = 0;i < List.size() ; i ++){
if("b".equals(List.get(i))){
List.remove(i--); //如果不进行减减操作,会漏删
}
}
}
第二种迭代器:
Iterator<String> it = list.iterator();
while(it.hasNext()) {
if("b".equals(it.next())) {
//list.remove("b"); //不能用集合的删除方法,因为迭代过程中如果集合修改会出现并发修改异常
it.remove();
}
}