在Java中,一个对象要表明自己支持迭代的话,就要实现Iterable接口。集合中Collection实现了这个接口,所以其实现可以用Iterator()方法,这个方法是实现了Iterable接口才特有的方法。举个例子,ArrayList实现了Iterable接口,他就可以调用Iterator()方法,得到一个Iterator对象进行迭代。
而仅就遍历数据而言,iterator遍历比下标遍历,多产生了一个iterator对象,每获取一个成员会多进行两次检查。当然,这并不会造成很大的性能差异,多出来的对象和检查消耗的性能可以忽略不计,不会成为性能瓶颈。
资料拓展:迭代器(Iterator)模式,又叫做游标(Cursor)模式。GOF给出的定义为:提供一种方法访问一个容器(container)对象中各个元素,而又不需暴露该对象的内部细节。从定义可见,迭代器模式是为容器而生。很明显,对容器对象的访问必然涉及到遍历算法。