Iterator接口介绍

iterator又名:迭代器

在程序开发中,经常需要遍历集合中的元素,针对这种需求,JDK专门提供了一个接口,Iterator接口也是Java集合中的一员,但它与Collection,Map接口有所不同,Collection接口与Map接口主要用于存储元素,而Iterator主要用于迭代器(即遍历)Collection中的元素,因此Iterator对象也被称为迭代器

Iterator接口的常用方法如下:

  • public E next():返回迭代的下一个元素(取出集合中的下一个元素)
  • public boolean hasNext():如果仍有元素可以迭代,则返回true(判断集合中还有没有下一个元素,有就返回true,没有就返回false)

迭代器的使用步骤:

1.使用集合中的方法iterator()获取迭代器的实现类对象,使用Iterator接口接收(多态)

2.使用Iterator接口中的方法hasNext判断还有没有下一个元素

3.使用Iterator接口中的方法next取出集合中的下一个元素 

迭代器代码实现

使用集合中的方法iterator()获取迭代器的实现对象,使用Iterator接口接收(多态)

注意:

    Iterator<E>接口也是有泛型的,迭代器的泛型跟着集合走,集合是什么泛型,迭代器就是什么泛型

1.使用Interator接口中的方法hasNext判断还有没有下一个元素

public static void main(String[] args) {
         Collection<String > list = new ArrayList<>();
         list.add("姚明");
         list.add("科比");
         list.add("詹姆斯");
         list.add("社会强");
         list.add("兵王强");
        //多态 接口                         实现对象
        Iterator<String> iterator = list.iterator();
        boolean b = iterator.hasNext();//使用Interator接口中的方法hasNext判断还有没有下一个元素
        System.out.println(b);
    }

2.使用Interator接口中的方法next取出元素

public static void main(String[] args) {
         Collection<String > list = new ArrayList<>();
         list.add("姚明");
         list.add("科比");
         list.add("詹姆斯");
         list.add("社会强");
         list.add("兵王强");
        //多态 接口                         实现对象
        Iterator<String> iterator = list.iterator();
        boolean b = iterator.hasNext();//判断集合中下一个元素是否存在
        System.out.println(b);
        //使用interator接口中的next的方法取出元素
        String next = iterator.next();
        System.out.println(next);

        b = iterator.hasNext();//判断集合中下一个元素是否存在
        System.out.println(b);
        next = iterator.next();
        System.out.println(next);

        b = iterator.hasNext();//判断集合中下一个元素是否存在
        System.out.println(b);
        next = iterator.next();
        System.out.println(next);

        b = iterator.hasNext();//判断集合中下一个元素是否存在
        System.out.println(b);
        next = iterator.next();
        System.out.println(next);

        b = iterator.hasNext();//判断集合中下一个元素是否存在
        System.out.println(b);
        next = iterator.next();
        System.out.println(next);
    }

 发现使用迭代器取出集合中的元素的代码,是一个重复的过程

所以我们可以使用循环优化

不知道集合中有多少元素,使用while循环

循环结束的条件,hasNext方法返回false

public class demg_02 {
    public static void main(String[] args) {
         Collection<String > list = new ArrayList<>();
         list.add("姚明");
         list.add("科比");
         list.add("詹姆斯");
         list.add("社会强");
         list.add("兵王强");
        //多态 接口                         实现对象
        Iterator<String> iterator = list.iterator();
        //使用while循环输出
        while (iterator.hasNext()){//循环判断语句就是 iterator接口中的判断集合中有没有下一个元素
            String next = iterator.next();
            System.out.println(next);
        }

运行接口:

iterable接口 java iterator接口的方法_iterable接口 java