迭代器Iterator与ListIterator

迭代器Iterator与ListIterator

  1. Iterator
    迭代器是一种处理集合的方法,含有next()、hasNext()、remove()三个方法。
    next():获取下一个元素
    hasNext():检查是否还有元素
    remove():删除元素
    下面展示遍历ArrayList、HashSet、HashMap.
        System.out.println("Iterator迭代器的使用:");
        //创建ArrayList
        ArrayList<String> list = new ArrayList<String>();
        list.add("a");
        list.add("b");
        list.add("c");
        list.add("d");
        list.add("e");
        //创建HashSet
        HashSet<String> set = new HashSet<String>();
        set.add("f");
        set.add("g");
        set.add("h");
        set.add("i");
        set.add("j");
        //创建HashMap
        HashMap<Integer,String> map = new HashMap<Integer, String>();
        map.put(1,"k");
        map.put(2,"l");
        map.put(3,"m");
        map.put(4,"n");
        map.put(5,"o");
        //将HashMap中的key值保存到set集合
        Set setkey = map.keySet();
        //创建迭代器
        Iterator<String> it1 = list.iterator();
        Iterator<String> it2 = set.iterator();
        Iterator<Integer> it3 = setkey.iterator();
        //迭代器遍历集合
        //遍历输出ArrayList
        while(it1.hasNext()){
            System.out.println(it1.next());
        }
        //遍历输出HashSet
        while(it2.hasNext()){
            System.out.println(it2.next());
        }
        //遍历set中保存的key值, HashMap通过key值找到对应的vulue值
        while(it3.hasNext()){
            Integer key = it3.next();
            String value = map.get(key);
            System.out.println(value);
        }

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

  1. ListIterator
    ListIterator是Iterator的子类,只能用于对List及其子类进行操作。
    不过里面新增了一些方法:
    add(E e):插入元素
    set(E e):返回的最后一个元素替换参数e
    hashPrevious():迭代器当前位置,反向遍历集合是否存在元素,判断上一个位置是否存在元素
    previous():反向遍历集合下一个元素,就是获取上一个元素
        System.out.println("ListIterator迭代器的使用:");
        //创建ArrayList
        ArrayList<String> list2 = new ArrayList<String>();
        list2.add("p");
        list2.add("q");
        list2.add("r");
        list2.add("s");
        list2.add("t");
        System.out.println(list2);
        ListIterator<String> listit = list2.listIterator();
        listit.add("123");
        System.out.println(list2);
        while (listit.hasNext()){
            String re = listit.next();
            if (re.equals("p"))//替换"p"
                listit.set("456");
        }
        System.out.println(list2);
        ArrayList<String> list3 = new ArrayList<String>();//空list
        ListIterator<String> listit2 = list3.listIterator();
        System.out.println(listit2.hasPrevious());

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

☆叙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值