(一)迭代器和迭代器接口是什么
- 迭代器:
迭代器(iterator)有时又称游标(cursor)是程序设计的软件设计模式,可在容器(container,例如链表或阵列)上遍访的接口,设计人员无需关心容器的内容。
迭代器,你可以简单理解为一个可以foreach的对象。
- 迭代器接口:
通过实现这个接口的类,就相当于一个迭代器。可以被用在foreach循环结构中。并且能够提供一些高级的数据访问模式。
(二)迭代器接口的作用
SPL迭代器接口的作用在于帮组实现高级的迭代算法,允许为类创建精巧的数据访问方法。这些接口形成了创建迭代器的基础。可以直接实现这些接口去创建所需的迭代器。SPL同时也扩展定义了更多的内置迭代器类。
(三)SPL提供的迭代器接口
SPL提供了6个关于迭代器的接口
- Traversable:无法被单独实现的基本抽象接口,其他的迭代器接口都直接或间接继承自该接口
- Iterator:直接继承自Traversable接口的两个基本迭代器接口之一
- SeekableIterator:Iterator接口的扩展,实现该接口允许通过键值进行查找
- IteratorAggregate:直接继承自Traversable接口的两个基本迭代器接口之一,允许将迭代器所需实现方法委托给一个实现Iterator接口的迭代器
- OuterIterator:继承自Iterator接口,允许将多个迭代器包裹其中
- RecurisveIterator:继承自Iterator接口,提供递归访问功能