迭代器模式实现遍历集合
集合有一个重要的方法:iterator(),它返回一个迭代器(iterator),它用于遍历集合的所有元素。迭代器模式允许您从不同的集合类中抽象出访问逻辑,以避免将集合的内部结构暴露给客户机。典型用法如下:
Iterator it = collection.iterator(); // 获得一个迭代器
while(it.hasNext()) {
Object obj = it.next(); // 得到下一个元素
}
不需要维护遍历集合的“指针”,所有内部状态都由迭代器维护,迭代器由集合类通过工厂方法生成。
具体类型返回的每个集合类迭代器可能是不同的,但是它们都实现了iterator接口,因此,我们不需要担心什么类型的迭代器,您只需要放置迭代器接口,好处的接口是面向对象的能力。
为了确保遍历过程的顺利完成,我们必须确保遍历过程不会改变集合的内容(除了迭代器删除()方法),从而确保可靠的遍历原则是:只有在一个线程中使用这个集合,或者遍历代码的线程同步使用。