[译]Java 设计模式之迭代器

(文章翻译自java-design-pattern-iterator)

迭代器模式用于迭代遍历一个集合对象。它是一个经常被用到的模式,你可能以前使用过它。不管在任何时候你看见一些方法像hasNext()和Next(),这个很有可能就是一个迭代器模式。例如,你可以迭代去遍历一个数据库查询记录的列表。

迭代器模式类图

iterator-design-pattern

迭代器模式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(), 等等。

原文地址:https://www.cnblogs.com/zhangminghui/p/4214368.html