Java集合(九): Iterator迭代器执行原理

目录

 

1、Iterator

1.1、iterator原理​

1.2、说明

2、遍历list、set、map

2.1、遍历List

2.2、遍历Set

2.3、遍历Map


1、Iterator

1.1、iterator原理在这里插入图片描述

        首先,当集合获取到迭代器也就是执行coll.iterator()之后,获得的iterator对象是指向集合之外的空白的地方

        iterator.hasNext()判断当前位置下一个是否含有元素,返回类型是Boolean类型,       

        iterator.next()将iterator迭代器对象指针向下移动一次,并返回移动后指向的指针,需要注意的是,迭代都是在原有的集合上进行,并不会改变或者复制

1.2、说明

coll.iterator()每次都会返回新的迭代器,都指向第一个元素之前空出的地方

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

这个就是是一个死循环,并且一直输出同一个元素

2、Iterator遍历list、set、map

         迭代器也就是将集合的数据放到一个容器中并排成一排,iterator有一个游标,最初的时候,游标在第一个元素前面,调用Iterator.next()是将游标往后移一位,Iterator.hasNext()是判断游标后面还没有可以迭代的元素。

2.1、遍历List

1         List<String> list = new ArrayList<String>();
2         list.add("a");
3         list.add("b");
4         Iterator<String> iterator = list.iterator();
5         while(iterator.hasNext()){
6             String next = iterator.next();
7             System.out.println(next);
8         }    

2.2、遍历Set

1         Set<String> set = new HashSet<String>();
2         set.add("c");
3         set.add("d");
4         Iterator<String> iteratorSet = set.iterator();
5         while (iteratorSet.hasNext()){
6             String next = iteratorSet.next();
7             System.out.println(next);
8         }

2.3、遍历Map

        Map是存放键值对的,与集合不一样,集合只能存放单一元素,所以我们先得将Map看成一个单一元素,放到Set集合中去,而JDk中Map有一个方法entrySet()就是将Map放到一个Set集合中去。

1         Map<Integer,String> map = new HashMap<Integer, String>();
2         Set<Map.Entry<Integer, String>> entries = map.entrySet();
3         Iterator<Map.Entry<Integer, String>> iteratorMap = entries.iterator();
4         while (iteratorMap.hasNext()){
5             Map.Entry<Integer, String> next = iteratorMap.next();
6             System.out.println(next);
7         }
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值