Iterator -迭代器

天大地大妈咪最大 提交于 2019-11-29 08:28:42
 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 }

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!