迭代器模式用于迭代集合对象,他是一个很经常使用的模式,你能够在以前使用过他,可能你见过像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()); } } }
在 java.util包中,迭代器的接口定义以下: 这些类能够建立迭代器TreeSet#iterator(), HashSet#iterator(),等数据库
public interface Iterator { boolean hasNext(); E next(); void remove(); }