public interface Iterator { public Object first(); public Object previous(); public Object next(); public boolean hasNext();}复制代码
具体实现迭代器,实现上述接口定义的方法。
public class MyIterator implements Iterator{ private List
容器定义,定义了两个抽象方法,用来设置具体的迭代器实现以及注入容器中的元素。
public abstract class Container { public abstract Iterator iterator(); public abstract void put(Object obj);}复制代码
具体的容器类基于List,实现抽象方法。
public class MyContainer extends Container{ private List list; public MyContainer() { this.list = new ArrayList(); } @Override public void put(Object obj){ this.list.add(obj); } @Override public Iterator iterator() { return new MyIterator(list); }}复制代码
客户端测试类。设置元素,并使用迭代器进行遍历。
public class ClientTest { public static void main(String[] args) { //创建一个自定义容器,直接使用ArrayList的实现 Container strContainer = new MyContainer(); strContainer.put("001"); strContainer.put("002"); Iterator myIterator = strContainer.iterator(); //使用迭代器遍历 System.out.println(myIterator.first()); while (myIterator.hasNext()) { System.out.println(myIterator.next()); } }}复制代码