描述:
这里用到四种方式进行遍历,第一种是增强for,这个方法会报错,估计这就是面试管给的坑,第二种方法用的迭代器,第三种方法用的是正向for循环,这种方法需要注意,删除一个元素后,后面元素会自动前移,在后续遍历时,需要i --;
操作,第四种方法是反向for循环,删除一个元素后,由于是后面的元素前移,所以在接下来遍历前面的元素时,不用进行i --;
操作。
import java.util.*;
public class Main {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("a");
list.add("a");
list.add("b");
list.add("c");
// // 增强for遍历删除,会报错
// for (String s : list) {
// if (s.equals("a")) {
// list.remove(s);
// }
// }
// System.out.println(list);
// // 迭代器遍历
// Iterator<String > iterator = list.iterator();
// while (iterator.hasNext()) {
// if (iterator.next().equals("a")) {
// iterator.remove();
// }
// }
// // 正向for循环,记得i --,因为删除一个元素后,其他元素都会前移;
// for (int i = 0; i < list.size(); i++) {
// if (list.get(i).equals("a")) {
// list.remove(i);
// i --;
// }
// }
// System.out.println(list);
// 反向for循环
for (int i = list.size() - 1; i >= 0; i--) {
if (list.get(i).equals("a")) {
list.remove(i);
}
}
System.out.println(list);
}
}