
正文
[译]Java 设计模式之迭代器
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
(文章翻译自java-design-pattern-iterator)
迭代器模式用于迭代遍历一个集合对象。它是一个经常被用到的模式,你可能以前使用过它。不管在任何时候你看见一些方法像hasNext()和Next(),这个很有可能就是一个迭代器模式。例如,你可以迭代去遍历一个数据库查询记录的列表。
迭代器模式类图

迭代器模式Java代码
interface IIterator{
public boolean hasNext();
public Object next();
}interface IContainer{
public IIterator createIterator();
}class RecordCollection implements IContainer{
private String recordArray[] = {"first","second","third","fourth","fifth"};public IIterator createIterator(){
RecordIterator iterator = new RecordIterator();
return iterator;
}private class RecordIterator implements IIterator{
private int index;public boolean hasNext(){
if (index < recordArray.length)
return true;
else
return false;
}public Object next(){
if (this.hasNext())
return recordArray[index++];
else
return null;
}
}
}public class TestIterator {
public static void main(String[] args) {
RecordCollection recordCollection = new RecordCollection();
IIterator iter = recordCollection.createIterator();while(iter.hasNext()){
System.out.println(iter.next());
}
}
}
在JDK中是用迭代器模式
在java.util包中,迭代器接口像下面这样被定义:
public interface Iterator<E> {
boolean hasNext();
E next();
void remove();
}
还有其他的类可以创建一个迭代器,例如 TreeSet#iterator(), HashSet#iterator(), 等等。





