定义 提供一种方法访问一个容器对象中各个元素,而又不需要暴露该对象的内部细节 类图 通用代码 public interface Iterator { public Object next(); public boolean hasNext(); public boolean remove(); } //具体迭代器 public class ConcreteIterator implements Iterator { private Vector vector = new Vector(); public int cursor=0; public ConcreteIterator(Vector _vector){ this.vector =_vector; } @Override public Object next() { Object result = null; if(this.hasNext()){ result =this.vector.get(this.cursor++); } return result; } @Override public boolean hasNext() { if(this.cursor==this.vector.size()){ return false; } return true; } @Override public boolean remove() { this.vector.remove(this.cursor); return true; }} //抽象容器 public interface Agregate { public Iterator iterator(); public void add(Object o); public void remove(Object o); } //具体容器 public class ConcreteAgregate implements Agregate { private Vector vector = new Vector(); @Override public Iterator iterator() { return new ConcreteIterator(this.vector); } @Override public void add(Object o) { this.vector.add(o); } @Override public void remove(Object o) { this.vector.remove(o); } } //场景类 public class Client { public static void main(String[] args) { Agregate agr = new ConcreteAgregate(); agr.add("guojun"); agr.add("cwj"); agr.add("lg"); Iterator iterator = agr.iterator(); while(iterator.hasNext()){ System.out.println(iterator.next()); } } }