Iterator 迭代器 接口 和 增强for

1.概述

在程序开发中,经常需要遍历集合中的所有元素。针对这种需求, JDK 专门提供了一个接口 java.util.Iterator Iterator 接口也是 Java 集合中的一员,但它与 Collection Map 接口有所不同, Collection 接口与 Map 接口主要用于存储元素,而 Iterator 主要用于迭代访问(即遍历) Collection 中的元素,因此 Iterator 对象也被称为迭代器
 
迭代器的方法:
public Iterator iterator() : 获取集合对应的迭代器,用来遍历集合中的元素的。
迭代
      即 Collection 集合元素的通用获取方式。在取元素之前先要判断集合中有没有元素,如果有,就把这个元素取出来,继续在判断,如果还有就再取出出来。一直把集合中的所有元素全部取出。这种取出方式专业术语称为迭代
 

Iterator接口的常用方法如下:

public E next() :返回迭代的下一个元素。
public boolean hasNext() :如果仍有元素可以迭代,则返回 true。

例子:

public class IteratorDemo {
    public static void main(String[] args) {
        //使用多态,创建对象
        Collection coll = new ArrayList<>();
        //添加元素到集合
        coll.add("黄帝");
        coll.add("炎帝");
        coll.add("蚩尤");
        coll.add("饕餮");
        //遍历
        //使用迭代器
        Iterator it = coll.iterator();
        while (it.hasNext()){//判断是否存在迭代元素
            String s = it.next();//获取迭代出的元素
            System.out.println(s);
        }
    }
}

2.增强for

概述:

增强for循环 ( 也称 for each 循环 ) JDK1.5 以后出来的一个高级 for 循环,专门用来遍历数组和集合的。它的内部原理其实是个Iterator 迭代器,所以在遍历的过程中,不能对集合中的元素进行增删操作。
格式:
for(元素的数据类型 变量 : Collection集合or数组){ 
         //写操作代码 
}

它用于遍历Collection和数组。通常只进行遍历元素,不要在遍历的过程中对集合元素进行增删操作

例子:

public class NBForDemo1 {
    public static void main(String[] args) {
        int[] arr = {10, 5, 6, 2, 88, 66};
        //正常for循环遍历
        for (int i = 0; i < arr.length; i++) {
            System.out.println(arr[i]);
        }
        System.out.println("===============");
        //增强for循环 遍历
        for (int i : arr) {
            System.out.println(i);
        }
        System.out.println("===============");

        Collection coll = new ArrayList();
        coll.add("小河神");
        coll.add("老河神");
        coll.add("神婆");
        for (String s : coll) {
            System.out.println(s);
        }

    }
}

备注: for循环必须有被遍历的目标。目标只能是Collection或者是数组。新式for仅仅作为遍历操作出现。

 

 

你可能感兴趣的:(题库,数组)