某软件公司欲基于迭代器模式开发一套用于遍历数组元素的类库,其基本结构如下图所示 在上图中,Collection类是抽象聚合类,ConcreteCollection 类是具体聚合类,Iterator类是抽象迭代器类,ConcreteIterator类是具体迭代器类。在聚合类中提供了创建迭代器的工厂方法createIterator()和数组的Setter()和Getter()方法,在迭代器中提供了用于遍历数组元素的相关方法,如first()、last()、next()等。 Java代码如下: interface Collection { public void setArray(Object objs[]); //设置数组 public Object[] getArray(); //获取数组 public Iterator createIterator(); //创建迭代器 } interface Iteractor { public void first(); //索引指向第一个元素 public void last(); //索引指向最后一个元素 public void next(); //索引指向下一个元素 public void previous() //索引指向上一个元素 public boolean isLast(); //判断是否最后一个元素 public boolean isFirst(); //判断是否第一个元素 public Object getItem(); //获取当前索引所指向的元素 } class ConcreteCollection implements Collection { private Object[] objs; public void setArray(Object objs[]) { this.objs = objs; } public Object[] getArray() { return this.objs;} public Iterator createIterator() { return_______1_______;} } class ConcreteIterator implements Iterator { private Object[] objs; private int index = 0; //索引变量,初值为0 public ConcreteIterator(ConcreteCollection collection) { this.objs = _________2_______;} public void first() { index = 0;} public void last() { ____3______;} public void next() { if(index < objs.lengh) { ______4____;} } public void previous() { if(index >= 0) { _____5________;} } public boolean isLast() { ____6______;} public boolean isFirst() {_______7_________;} public Object getItem() { return objs[index];} } class Test { public static void main(String args[]) { Collecton collection; collection = new ConcreteCollection(); Object[] objs = {"北京","上海","广州","深圳","长沙"}; collection.setArray(objs); Iterator i = _____8_____; i.last(); //逆向遍历所有元素 while (_______9_________) { System.out.println(i.getItem().toString()); _________10________; } } }