Iterator接口

         

java.util.iterator接口(迭代器)

概述:对集合进行遍历,Iterator迭代器是一个接口,我们无法直接使用,需要使用Iterator接口的实现类对象。

获取实现类的方式比较特殊。

Collection接口中有一个方法,叫iterator(),这个方法返回的就是迭代器的实现类对象
Iterator<E> iterator() 返回在此 collection 的元素上进行迭代的迭代器。

 

 

有2个常用的方法;

1,boolean hasNext():如果仍有元素可以迭代,则返回true。

  意思:判断集合中还有没有下一个元素,有就返回true,没有就返回false。

2,E next():返回迭代的下一个元素。

  意思:取出集合中的下一个元素。

 

迭代器的使用步骤(重点):
1.使用集合中的方法iterator()获取迭代器的实现类对象,使用Iterator接口接收(多态)
2.使用Iterator接口中的方法hasNext判断还有没有下一个元素
3.使用Iterator接口中的方法next取出集合中的下一个元素

 

 1 import java.util.ArrayList;
 2 import java.util.Collection;
 3 import java.util.Iterator;
 4 
 5 public class A09Iterator {
 6     public static void main(String[] args) {
 7         //创建一个集合
 8         Collection<String> coll = new ArrayList<>();
 9         //往集合中添加元素
10         coll.add("姚明");
11         coll.add("科比");
12         coll.add("麦迪");
13         coll.add("詹姆斯");
14         coll.add("乔丹");
15 
16         /*
17             1,使用集合中的方法Iterator();获取迭代器的实现类对象,使用Iterator接口接收(多态);
18             注意:
19                 Iterator<E>接口也是有泛型的, 迭代器的泛型跟着集合走,集合是什么泛型,迭代器也就是什么泛型。
20          */
21 
22         //创建迭代器
23         //1.使用集合中的方法iterator()获取迭代器的实现类对象,使用Iterator接口接收(多态)
24         //    接口         +      实现类   =   多态
25         Iterator<String> it = coll.iterator();
26         
27         //推荐使用
28         while (it.hasNext()) {
29             String s = it.next();
30             System.out.println(s);
31         }
32 
33 /*
34         //了解使用(比较麻烦,不推荐使用)
35         for(Iterator<String> it2 = coll.iterator();it2.hasNext();){
36             String next = it2.next();
37             System.out.println(next);
38             
39         }*/
40 
41         //检验一下集合中有没有元素  用hasNext。
42         //2.使用Iterator接口中的方法hasNext判断还有没有下一个元素
43         boolean b = it.hasNext();
44         System.out.println(b);//true
45 
46         //遍历一下集合
47         //3.使用Iterator接口中的方法next取出集合中的下一个元素
48         String s = it.next();
49         System.out.println(s);//姚明
50 
51         b = it.hasNext();
52         s = it.next();
53         System.out.println(s);
54     }
55 }

 

posted @ 2020-12-12 00:52  ZHU_FENG  阅读(227)  评论(0)    收藏  举报