迭代器
迭代器(Iterator) 是一种行为型设计模式,属于设计模式之一,迭代器模式提供了一种方法来顺序访问一个聚合对象(如List、Set等)中各个元素,而不需要暴露该对象的内部表示。
-
Iterator
对象称为迭代器,主要用于遍历Collection
集合中的元素。 -
所有实现了Collection接口的集合类都有一个iterator()方法,用以返回一个实现了Iterator接口的对象,即可以返回一个迭代器。
-
Iterator
仅用于遍历集合,Iterator
本身并不存放对象。 -
集合的顶层接口
Collection
继承Iterable
接口。
迭代器的特性
-
fail-fast机制:当集合在迭代过程中被修改(除了通过迭代器自身的
remove()
方法),迭代器会快速失败,抛出ConcurrentModificationException
。 -
fail-safe机制:某些集合(如
CopyOnWriteArrayList
)的迭代器是fail-safe
的,即它们允许在迭代过程中修改集合,但修改会反映在一个新的集合副本上,不会影响迭代器遍历的集合。
Iterable 和 Iterator 接口
Iterable接口
public interface Iterable<T> {
/**
* Returns an iterator over elements of type {@code T}.
*
* @return an Iterator.
*/
Iterator<T> iterator(