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<String> coll = new ArrayList<>();//添加元素到集合coll.add("黄帝");coll.add("炎帝");coll.add("蚩尤");coll.add("饕餮");//遍历//使用迭代器Iterator<String> 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<String> coll = new ArrayList<String>();coll.add("小河神");coll.add("老河神");coll.add("神婆");for (String s : coll) {System.out.println(s);}}
}
备注: 新for循环必须有被遍历的目标。目标只能是Collection或者是数组。新式for仅仅作为遍历操作出现。