Iterator -迭代器

Posted huxiaobai

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Iterator -迭代器相关的知识,希望对你有一定的参考价值。

 1 package cn.learn.collection;
 2 
 3 import java.util.Collection;
 4 import java.util.HashSet;
 5 import java.util.Iterator;
 6 
 7 /*
 8     java.util.Iterator
 9 迭代器:主要用于遍历访问collection,遍历前都会先判断集合是否为空
10 
11        Iterator的对象 也被称为迭代器
12        Iterator是一个接口,需要使用Iterator接口的实现类对象
13        获取方法比较特殊,Collection中有个iterator()方法,返回的是Iterator的实现类
14 
15  先用hasNext()判断有无元素,返回一个Boolean,再用next(),取出元素
16  */
17 public class IteratorApi {
18     public static void main(String[] args) {
19         Collection<String> hs= new HashSet<>();
20         hs.add("ni");
21         hs.add("nn");
22         hs.add("n1");
23         hs.add("n1");
24         hs.add("n2");
25         System.out.println(hs);  //[nn,n1,n2,ni]
26         //接口指向实现类,多态,Iterator<E>的泛型是跟着集合走的
27         //iter指向的是集合的-1索引,为了hasNext();
28         Iterator iter=hs.iterator();
29         //迭代器遍历
30         while(iter.hasNext()){
31             //iter.next()做了两件事,1:取出元素2:指针后移
32             System.out.println(iter.next());
33         }
34         System.out.println(iter.hasNext());//false
35 
36 
37         /*
38         增强for循环,jdk1.5以后,专门用来遍历的,不可用来增删操作
39         格式:
40         for(数据类型 变量:集合或者数组名不能是迭代器名字){
41             //操作代码
42 43          */
44         //for循环的次数默认为数组或集合的size();内部原理和Iterator一样
45         for(String str: hs){
46         // for (Iterator<String> iterator = hs.iterator(); iterator.hasNext(); )
47             System.out.println(str);
48             }
49 
50     }
51 }

 

以上是关于Iterator -迭代器的主要内容,如果未能解决你的问题,请参考以下文章

STL的iterator

es6之iterator

ECMA Script 6_symbol(symbol.iterator) 新接口_iterator接口

iterator简单描述

java iterator hasnext() 死循环

java的Iterator源码浅析