测试用例:
list.add("a");
list.add("b");
list.add("b");
list.add("c");
list.add("d");
list.add("b");
/**
* 1,for
* 如果间隔 没有问题
* 如果相邻 保留一个
*/
for (int i = 0; i < list.size(); i++) {
if(list.get(i).equals("b")) {
//list.remove(i);
//list.remove(i--); 如果相邻 则指针返回一次
}
}
System.out.println(list);
/**
* 2,迭代器删除
*/
Iterator<String> it = list.iterator();
while (it.hasNext()) {
String s = (String) it.next();
if(s.equals("b")) {
//list.remove("b");//并发修改异常,不能用集合的删除方法,调用迭代器自身remove()方法
it.remove();
}
}
/*
* iterator的另一种写法
*/
// for(Iterator<String> it = list.iterator();it.hasNext();) {
// if("b".equals(it.next())) {
// it.remove();
// }
// }
// System.out.println(list);
/**
* 3,foreach
*/
for(String s:list) {
if("b".equals(s)) {
//list.remove("b"); 并发修改异常,foreach底层依赖Iterator
//所以不能用remove删除
}
}
System.out.println(list);