Java迭代器

java迭代器就是提供一个方法对容器中各个对象进行访问,而又不暴露该对象该对象容器的内部实现细节。

Java集合框架的集合类,我们有时候称之为容器。容器的种类有很多种,比如ArrayList,LinkedList,HashSet等等,每种容器都有自己的特点,ArrayList底层维护的是一个数组,LinkedList是链表的结构,HashSet依赖的是哈希表,每种容器都有自己特有的数据结构。

因为容器的内部结构不同,很多时候可能不知道该怎么样去遍历一个容器中的元素。所以为了使对容器内元素的操作更为简单,Java引入了迭代器模式。

1.1.1 Java.util.Iterator

在Javak ,Iterator为一个接口,它只提供了迭代的基本规则。在JDK中它是这样定义的:对Collection进行迭代的迭代器。在迭代器取代了Java Collection Framework中的Enumeration。迭代器与枚举有两点不同:

1.迭代器在迭代期间可以从集合中移除元素

2.方法名得到了改进,Enumeration的方法名称都比较长。

其接口定义如下:

public interface Iterator<E> {
    boolean hasNext();
    E next();
    void remove();
}

  2.Iterable

Java中还提供了一个Iterable接口,Iterable接口实现后的功能是“返回”一个迭代器。我们常用的实现了该接口的子接口有:Collection<E>、List<E>、set<E>等。该接口的iterator()方法返回一个标准的Iterator实现。实现Iterable接口允许对象成为Foreach语句的目标。

Iterable接口包含一个能产生Iterator对象的方法,并且Iterable被foreach用来在序列中移动。如果创建了实现Iterable接口的类,都可以将它用于foreach中。

public interface Iterable<T> {
    Iterator<T> iterator();
}

  

原文地址:https://www.cnblogs.com/linwenbin/p/11724298.html