定义: 提供一种方法访问一个容器对象中的每个元素,而又不暴露该对象的内部细节。
迭代器模式的运用
提到迭代器,首先它是与集合相关的,集合可以看作是一个可以包含对象的容器。例如List,Set,Map,迭代器的作用就是把容器中的对象一个接一个地遍历出来。
|
|
迭代器的实现
迭代器模式的结构:
- 抽象容器,一般是一个接口, 提供一个iterator() 方法,如java中的Collection、List和Set等类的接口。
- 具体容器,容器的实现类 ,如ArrayList, LinkedList和HashSet等。
- 抽象迭代器, 定义遍历集合中的所需要的方法,一般包含三个方法。
>
next() 取得迭代器中准备的下一个元素
hasNext() 判断是否遍历结束
remove() 将迭代器的下一个元素移除
4.具体迭代器,实现抽象迭代器的方法。
抽象迭代器
|
|
具体迭代器
|
|
抽象集合类
|
|
集合类的实现
|
|
测试
|
|
总结
优点:
对于hsah表来说,使用迭代器的遍历会变得简单。
可以提供正反两种方向的遍历顺序
缺点:
对于简单数组或者有序列表,用迭代器反而会比较麻烦。比如对ArrayList一般使用for循环和get进行遍历。