对于一群类型相同的对象集合,其存储方式可以是多种多样的数据结构,如数组、列表等,他们对集合具体操作不同,但是可以通过iterator接口来统一他们的操作。
对于用不同数据结构的集合A和B,若要统一遍历他们的各个项,先让他们分别实现Iterator接口,实现各自的next()和hasnext()函数,然后在他们的类中定义一个返回迭代器的函数CreateIterator(){return new DinerMenu(menuitems);},这样在统一带调用的时候,不需要弄清A和B的细节,只用获得他们各自的迭代器就行了。
使用java中内置的Iterator接口时,对于ArrayList,java中设置为本身就有一个返回迭代器的iterator()的方法,但是对于数组则需要自己实现createIterator()方法。迭代器提供了一种可以顺序访问聚集对象中的元素的方法,但是又可以不用管其内部是如何表示的。