迭代器

迭代器Iterator(接口)

  • 描述

        在程序开发过程中,经常需要遍历集合当中的所有元素,针对这种情况,jdk官方又提供了一个接口java.util.Iterator;  Iterator接口它是集合当中的一员,但是它与Map,Collection接口不同,Collection接口和Map接口它主要是用来存储元素的,而Iterator主要使用来迭代访问Collection于Map接口当中的元素。因此我们也经常把Iterator对象称为迭代器。
        想要遍历Collection集合中的元素,首先需要获取集合的迭代器,通过迭代器完成迭代操作
    
  • 获取迭代器的方法

       public Iterator iterator​(); 获取集合对应的迭代器,用来遍历集合当中的元素。
    
  • 概念

    迭代:Collection集合元素的通用的获取方式。具体实现:在每次取元素之前判断集合当中有没有元素,如果有就把这个元素取出来,继续在判断,如果还有就再次取出来,一直把集合中的所有元素全部取出来,我们把这种取出方式在专业术语上称为迭代。
    
  • 常用方法

    public boolean hasNext​(); 如果集合当中仍有元素可以迭代,则返回true,没有元素则返回false
    public E next​(); 获取迭代的下一个元素。
    'next,要做两件事'
        	'1.先把下一个元素取出来'
        	'2.会把指针往后移动一位'
        
    default void remove​();  从底层集合中删除此迭代器返回的最后一个元素(可选操作)。 这种方法只能在每次调用next()时调用一次。
        //java.util.NoSuchElementException;(没有这样的元素)  如果集合当中没有下一个元素,依然使用迭代器从集合中取出元素,就会抛出这样的异常
    
  • 具体实现步骤

    '在调用iterator接口当中的next方法之前,迭代器的索引位于第一个元素之前,不指向任何元素,当第一次调用迭代器的next方法后,迭代器的索引会向后移动过以为,指向第一个元素并将元素返回。当再次调用next方法时,迭代器的索引会指向第二个元素并将该元素返回,依此类推,知道hasNext方法返回false时,表示迭代器到达了集合的末尾,终止对元素的遍历。如果强硬的在取,程序就会抛出java.util.NoSuchElementException;'
        
        备注;Iterator<E> 接口也是有泛型的,迭代器的泛型是跟着集合走的,集合中定义的什么类型,迭代器就是什么类型。
    

原文地址:https://www.cnblogs.com/zk2020/p/14070444.html