一、基本概念
在Java开发过程中我们进场需要去遍历某个集合,然而有的集合有索引,有的集合没有索引,对于没有索引的集合我们就无法通过索引来遍历集合中的元素,这时Java就为我们提供了一个接口,Iterator接口,它的主要作用就是用来迭代访问集合中的元素。
二、Iterator迭代器工作原理
1、工作原理:
迭代器的执行原理是创建一个指针对象,指向当前数据结构的起始位置,然后调用next方法,指针自动指向数据结构的第一个成员,接下来不断调用next方法,指针一直往后移动,直到指向最后一个成员,每次调用next方法都会返回一个包含value和done属性的对象。
需要特别说明的是,当通过迭代器获取ArrayList集合中的元素时,都会将这些元素当做Object类型来看待,如果想得到特定类型的元素,则需要进行强制类型转换。
而每一个容器的数据结构不同,所以取出的动作细节也不一样。但是都具有共性内容: 判断和取出。那么就可以将这些共性抽取。那么这些内部类都符合一个规则(或者说都抽取出来一个规则)。该规则就是Iterator。通过一个对外提供的方法:iterator();,来获取集合的取出对象。因为Collection中有iterator方法,所以每一个子类集合对象都具备迭代器。
2、Iterator常用方法:
public E next():返回迭代的下一个元素。
public boolean hasNext():如果仍有元素可以迭代,则返回 true。
public class List01 {
public static void main(String[] args) {
List<Integer> list = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8);
Iterator<Integer> iterator = list.iterator();
while (iterator.hasNext()) {
Integer next = iterator.next();
System.out.println(next); //运行结果 依次打印: 1,2,3,4,5,6,7,8
}
}
}