JavaSE

迭代器与for-each循环

peirujie · 4月2日 · 2020年

Iterator(迭代器对象)

  • 迭代器(iterator)是一种对象, 用来遍历collection集合

1、获取iterator

1、java.lang Interface Iterable<T> 接口中提供了获取iterator的方法

  • Iterator<T> iterator() 返回类型为 T元素的迭代器。

2、实现了这个接口的集合对象支持迭代,是可迭代的。

3、Collection接口 继承了该接口

  • public interface Collection<E> extends Iterable<E>

2、迭代器常用方法

  • boolean hasNext() :判断集合中是否还有元素。如果有,返回true
  • E next() :返回集合的下一个元素
  • default void remove() :删除迭代器返回的最后一个元素
//迭代器实现原理       
        Collection<Integer> coll = new ArrayList<>();
        coll.add(1);
        coll.add(2);
        coll.add(3);
        coll.add(4);
        //获取迭代器
        Iterator<Integer> ite = coll.iterator();//获取迭代器对象,并将指针(索引)指向集合的-1索引
        while(ite.hasNext()){//判断集合中还有没有下一个元素
            System.out.print(ite.next());//取出下一个元素,并将指针向后移一位
          //结果 1234
        }

for-each循环

  • for-each循环底层使用的也是迭代器,使用for循环的格式,简化了迭代器的书写
  • 可用来遍历集合/数组
  • 格式:
    • for(集合/数组数据类型 变量名:集合/数组名){ }
        int[] array = {1, 2, 3, 4};
        for (int i: array){
            System.out.println(i);
        }

        System.out.println("===========");
        ArrayList<String> list = new ArrayList<>();
        list.add("张一");
        list.add("张三");
        list.add("张二");
        list.add("张四");
        for (String s : list){
            System.out.println(s);
        }
0 条回应
博客稳定运行: