Iterator用法

本文对比了迭代器(Iterator)和foreach循环在Java中的使用场景和优劣。迭代器允许在遍历过程中移除元素,而foreach则适用于简单的遍历查询。文章通过示例代码展示了如何使用迭代器进行元素移除。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值