Day07_36_Iterator迭代器

Iterator

  • Iterator

    • Iterator iterator(); 获取集合所依赖的迭代对象

    • 通过迭代器iterator()中的方法完成集合的迭代(遍历),这种方式是所有集合通用的遍历方法。

    • 所有集合的迭代器 都实现了 java.util.Iterator 接口。

    • Iterator接口迭代器中有三个遍历方法:

    • boolean hasNext() : 如果集合中仍有元素,还可以继续迭代则返回true,否则false。

    • next() : 返回迭代的下一个元素。

    • remove(): 从迭代器指向的 collection 中,移除迭代器返回的最后一个元素。

    • 调用iterator.next() 方法之前,必须利用iterator.hasNext()判断是否有元素

    • 同一个迭代器只能遍历一次,如果写了两个遍历,则第二个遍历无法输出

    • 迭代器具体应用实例

        ```
      
         package com.shige.Collection;
      
         import java.util.Collection;
         import java.util.Iterator;
         import java.util.LinkedList;
      
         public class IteratorText {
             public static void main(String[] args) {
      
                 //创建集合对象
                 Collection collection = new LinkedList(); // 父类引用指向子类对象
      
                 //创建Customer对象
                 Customer customer=new Customer("Eva",22);
      
                 //给集合添加元素
                 collection.add(new Integer(100));
                 collection.add("诗歌");
                 collection.add(customer);
      
      
                 //创建迭代器对象1
                 Iterator iterator= (Iterator) collection.iterator(); //父类引用指向子类对象   iterator()是Iterator接口下的一个方法。
      
                 // 开始调用方法完成迭代
      
                   //while循环写法
                  while(iterator.hasNext()){ // 判断集合中是否还有元素
                     Object obj=iterator.next(); //将迭代器向下移动一位,并取出所指向的元素
                     System.out.println(obj);  //输出元素
                  }
                
                   //获取集合长度
                  System.out.println(collection.size());
      
                 System.out.println("=================================================================================");
      
                
                 // for循环写法
                 for(Iterator iterator1=collection.iterator();iterator1.hasNext();){  // 同一个迭代器只能遍历一次,需要遍历几次就创建几个迭代器。
                     Object obj1=iterator1.next();
                     System.out.println(obj1);
                 }
      
              }
         }
      
posted @ 2021-03-31 21:05  失昼  阅读(71)  评论(0)    收藏  举报