[[集合] Itreator源码解析(3)](https://copyfuture.com/blogs-details/20191017160706614rpgeagffzztaeod) 本篇文章不长,因为只介绍Itreator接口,而不涉及它的实现。 接口缘由 由于每一个容器都有取出元素的功能。这些功能定义都一样,只不过实现的具体方式不同(因为每一个容器的数据结构不一样)所以对共性的取出功能进行了抽取,从而出现了Iterator接口。而每一个容器都在其内部对该接口进行了内部类的实现。也就是将取出方式的细节进行封装。 Itreator接口是Jdk1.5之后添加的新接口, Collection的父接口。 实现了Iterable的类就是可迭代的。并且支持增强for循环。 该接口只有一个方法即获取迭代器的方法iterator()可以获取每个容器自身的迭代器Iterator。 (Collection)集合容器都需要获取迭代器(Iterator)于是在5.0后又进行了抽取将获取容器迭代器的iterator()方法放入到了Iterable接口中。 Collection接口继承了Iterable,所以Collection体系都具备获取自身迭代器的方法,只不过每个子类集合都进行了重写(因为数据结构不同)。 Iterable接口的源码主要方法就是iterator()、forEach(Consumer<? super T> action)、spliterator()(并行遍历),Iterable接口就不做过多介绍了。后面有机会再看。 接口介绍 Itreator直译过来就是迭代器,迭代可以简单的理解为遍历,是一个标准化遍历各类容器里面的所有对象的方法类,它是一个很典型的设计模式。 Iterator 模式是用于遍历集合类的标准访问方法。它可以把访问逻辑从不同类型的集合类中抽象出来,从而避免向客户端暴露集合的内部结构。 Iterator是为了方便的处理集合中的元素,该接口提供了一些方法专门处理集合中的元素.例如删除和获取集合中的元素.