JAVA迭代器的使用

        在Java中,迭代器(Iterator)是一种用于遍历集合(如ListSet等)的接口。它提供了一种统一的方式来访问集合中的元素,而无需暴露集合的内部结构。以下是迭代器的基本使用方法和一个示例代码。

迭代器的主要方法

  1. hasNext():判断是否还有下一个元素。

  2. next():返回集合中的下一个元素。

  3. remove():可选操作,用于删除上一次next()返回的元素。

示例代码

以下代码展示了如何使用迭代器遍历一个ArrayList并删除符合条件的元素。

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

public class IteratorExample {
    public static void main(String[] args) {
        // 创建一个ArrayList并添加一些元素
        List<String> list = new ArrayList<>();
        list.add("Apple");
        list.add("Banana");
        list.add("Cherry");
        list.add("Date");

        // 使用迭代器遍历集合
        System.out.println("遍历集合并打印所有元素:");
        Iterator<String> iterator = list.iterator();
        while (iterator.hasNext()) {
            String fruit = iterator.next();
            System.out.println(fruit);
        }

        // 使用迭代器删除符合条件的元素(例如删除以'B'开头的元素)
        System.out.println("\n删除以'B'开头的元素后:");
        iterator = list.iterator(); // 重新获取迭代器
        while (iterator.hasNext()) {
            String fruit = iterator.next();
            if (fruit.startsWith("B")) {
                iterator.remove(); // 使用迭代器的remove方法删除元素
            }
        }

        // 再次遍历集合查看结果
        System.out.println("当前集合中的元素:");
        for (String fruit : list) {
            System.out.println(fruit);
        }
    }
}

输出结果

遍历集合并打印所有元素:
Apple
Banana
Cherry
Date

删除以'B'开头的元素后:
当前集合中的元素:
Apple
Cherry
Date

注意事项

  1. 线程安全:迭代器本身不是线程安全的。如果在多线程环境中使用迭代器,需要额外的同步机制。

  2. ConcurrentModificationException:在遍历集合时,不能直接修改集合的结构(如添加或删除元素),否则会抛出ConcurrentModificationException。如果需要修改集合,必须使用迭代器的remove()方法。

  3. forEachRemaining方法:从Java 8开始,Iterator接口还提供了一个forEachRemaining方法,可以更方便地遍历剩余的元素。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值