Iterator用法

 Interator迭代集合,可以进行remove操作。

public class Test {
    public static void main(String[] args) {
        List<String> lists = new ArrayList<>();
        lists.add("Sam");
        lists.add("Tom");
        lists.add("David");
        lists.add("AAA");
        Iterator<String> iterator = lists.iterator();
        while (iterator.hasNext()) {
            if (iterator.next().equals("AAA")) {
                iterator.remove();
            }
        }
        for (String str : lists){
            System.out.println("for循环:"+str);
        }
    }
}

用lambda表达式:

public class Test {
    public static void main(String[] args) {
        List<String> lists = new ArrayList<>();
        lists.add("Sam");
        lists.add("Tom");
        lists.add("David");
        lists.add("AAA");
        Iterator<String> iterator = lists.iterator();

        iterator.forEachRemaining(str -> System.out.println("lambda循环1:"+str));

        iterator.forEachRemaining(str -> System.out.println("lambda循环2:"+str));
    }
}

iterator使用next()方法跳转到下一步,过程不可逆。

foreach与iterator的优劣

 foreach可用于遍历任何集合或数组,而且操作简单易懂,他唯一的不好就是需要了解集合内部类型。
 iterator是最强大的,他可以随时修改或者删除集合内部的元素,并且是在不需要知道元素和集合的类型的情况下进行的,当你需要对不同的容器实现同样的遍历方式时,迭代器是最好的选择。

总结

  1. 当只进行遍历查询的时候可以使用foreach来简化代码
  2. 如果涉及到删除操作,foreach会出现问题,必须使用Iterator

猜你喜欢

转载自blog.csdn.net/qq_33283652/article/details/82661826