/**
* 抽象迭代器
*/publicinterfaceIterator{publicObjectfirst();publicObjectnext();publicbooleanhasNext();}/**
* 具体迭代器
*/publicclassConcreteIteratorimplementsIterator{privateList<Object> list =null;privateint index =-1;publicConcreteIterator(List<Object> list){this.list = list;}publicbooleanhasNext(){if(index < list.size()-1)returntrue;elsereturnfalse;}publicObjectfirst(){
index =0;Object obj = list.get(index);;return obj;}publicObjectnext(){Object obj =null;if(this.hasNext()) obj = list.get(++index);return obj;}}
/**
* 测试
*/publicclassIteratorTest{publicstaticvoidmain(String[] args){Aggregate ag =newConcreteAggregate();
ag.add("中山大学");
ag.add("华南理工");
ag.add("韶关学院");System.out.print("聚合的内容有:");Iterator it =(Iterator) ag.getIterator();while(it.hasNext()){Object ob = it.next();System.out.print(ob.toString()+"\t");}Object ob = it.first();System.out.println("\nFirst:"+ ob.toString());}}