迭代器
迭代,在程序中特指对某集合中各元素逐个取用的行为。迭代器模式(Iterator)提供了一种机制来按顺序访问集合中的各元素,而不需要知道集合内部的构造。换句话讲,迭代器满足了对集合迭代的需求,并向外部提供了一种统一的迭代方式,而不必暴露集合的内部数据结构。
1 物以类聚
迭代的过程是基于一系列数据展开的,所以集合是不得不提的概念。物以类聚,集合是由一个或多个确定的元素构成的整体,其实就是把一系列类似的元素按某种数据结构集结起来,作为一个整体来引用,以便于维护。简单来讲,可以把集合理解为“一堆”或者“一群”类似的元素集结起来的整体。为了承载不同的数据形式,集合类提供了多种多样的数据结构,如我们常用的ArrayList、HashSet、HashMap等,具体分类结构如图1-1所示。
每种集合都有不同的特性,可以满足对各种数据结构的承载需求。有了集合才会产生对其迭代的需求,而每种数据结构的迭代方式又不尽相同,所以,定义标准化的迭代器势在必行,以提供统一、通用的使用方法。
2 循环往复
遍历是一种周而复始的体现。生活中也有很多这样的场景,例如生产线上对每件产品加工过程的重复,再如读书时对每一页的翻阅动作的重复。为了达到遍历的目的,对元素的迭代是必不可少的。而迭代器则可以帮助我们对当前状态进行自动记录,并提供获取下一个元素的方法。书是由很多页元素组成的集合,我们读书时通常是从前往后翻阅,这时页码会按翻阅顺序逐步增大,如此才能将书页连