Iterator迭代器接口

Iterator对象称为迭代器(设计模式的一种),主要用于遍历 Collection 集合中的元素。 GOF给迭代器模式的定义为:提供一种方法访问一个容器(container)对象中各个元素,而又不需暴露该对象的内部细节。 迭代器模式,就是为容器而生。

Collection接口继承了java.lang.Iterable接口,该接口有一个iterator()方法,那么所有实现了Collection接口的集合类都有一个iterator()方法,用以返回一个实现了Iterator接口的对象。

  • Iterator 仅用于遍历集合,Iterator 本身并不提供承装对象的能力。如果需要创建Iterator 对象,则必须有一个被迭代的集合。
  • 集合对象每次调用iterator()方法都得到一个全新的迭代器对象,默认游标都在集合的第一个元素之前。

使用迭代器接口遍历集合元素

ArrayList<Integer> list = new ArrayList<>();
list.add(23);
list.add(34);
list.add(34);
list.add(6);

ListIterator<Integer> iterator = list.listIterator();

while (iterator.hasNext()) {
    System.out.println(iterator.next());
}

另外,只要是实现了Iterator接口的类的实例都可以使用foreach来遍历

for (Integer i:list) {
    System.out.println(i);
}