迭代器的简单Demo

本文详细介绍了Java中的迭代器Iterator,包括其功能、使用方法及在List中的应用。通过示例展示了如何使用while和for循环遍历List,以及ListIterator的特有功能如倒序遍历、替换和插入元素。此外,还探讨了Iterator在删除元素和清空集合时的操作。

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

迭代器(Iterator)

迭代器是一种设计模式,它是一个对象,它可以遍历并选择序列中的对象,而开发人员不需要了解该序列的底层结构。迭代器通常被称为“轻量级”对象,因为创建它的代价小。

Java中的Iterator功能比较简单,并且只能单向移动:

  1. 使用方法iterator()要求容器返回一个Iterator。第一次调用Iterator的next()方法时,它返回序列的第一个元素。注意:iterator()方法是java.lang.Iterable接口,被Collection继承。
  2. 使用next()获得序列中的下一个元素。
  3. 使用hasNext()检查序列中是否还有元素。
  4. 使用remove()将迭代器新返回的元素删除。

Iterator是Java迭代器最简单的实现,为List设计的ListIterator具有更多的功能,它可以从两个方向遍历List,也可以从List中插入和删除元素。

我们先写一个简单的例子

public class IteratorDemo {
    public static void main(String[] args) {
        //先创建一个list集合
        List<String> list = new ArrayList<>();
        list.add("111");
        list.add("222");
        list.add("333");
        list.add("444");
        //调用
        Iterator<String> iterator = list.iterator();
        while (iterator.hasNext()) {
            String s = iterator.next();
            //循环输出一下
            System.out.println(s);
        }
    }
}

输出的结果是:

在这里插入图片描述
上面这种是while循环的。还可以使用for循环。

//for循环的迭代器
        for (Iterator it = list.iterator(); it.hasNext();) {
            //迭代器的next方法返回值类型是Object,所以要记得类型转换。
            String next = (String) it.next();
            System.out.println(next);
        }

list特有的迭代器

//list特有的迭代器
        ListIterator listIterator = list.listIterator();
        while (listIterator.hasNext()) {
            String s = (String) listIterator.next();
            //循环输出一下
            System.out.println(s);
        }

倒叙排列输出:注意,需要正序排列之后再倒叙排列。

    ListIterator listIterator = list.listIterator();
    while (listIterator.hasNext()) {
        String s = (String) listIterator.next();
        //循环输出一下
        System.out.println(s);
    }
    //倒叙
    while (listIterator.hasPrevious()) {
        String next = (String) listIterator.previous();
        System.out.println(next);
    }

Set方法:用指定元素替换 next 或 previous 返回的最后一个元素

 listIterator.next();//111
listIterator.next();//222
System.out.println(listIterator.next());//333
//用指定元素替换 next 或 previous 返回的最后一个元素
listIterator.set("555");//会将333替换成555
System.out.println(list);

输出结果为:
在这里插入图片描述

add方法将指定的元素插入列表,该元素直接插入到 next 返回的元素的后面

listIterator.next();//111
listIterator.next();//222
System.out.println(listIterator.next());//333
listIterator.add("555");// 333后面插入了555
System.out.println(list);

输出结果为:

在这里插入图片描述

remove:清空集合

while (iterator.hasNext()) {
            iterator.next();
            iterator.remove();
        }
        System.out.println(iterator);

输出的结果是这样的:

在这里插入图片描述
如有雷同,全都是你对

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值