大话设计模式 迭代器模式

来源:互联网 发布:四川网络大学考试平台 编辑:程序博客网 时间:2024/06/13 13:00

上车买票

package org.ustc.iterator;public interface Iterator {String next();String first();boolean isDone();String currentItem();}

package org.ustc.iterator;public interface MySet {Iterator createIterator();}

package org.ustc.iterator;import java.util.List;public class ConcreateSet implements MySet {private List<String> items ;public ConcreateSet(List<String> items) {super();this.items = items;}@Overridepublic Iterator createIterator() {// TODO Auto-generated method stubreturn new ConcreteIterator(this);}public int Count(){return items.size();}public List<String> getItems() {return items;}public void setItems(List<String> items) {this.items = items;}}
package org.ustc.iterator;import java.util.List;public class ConcreteIterator implements Iterator {private ConcreateSet conSet;private int curr;private List<String> list;public ConcreteIterator(ConcreateSet conSet) {this.conSet = conSet;this.list = conSet.getItems();this.curr = 0;}@Overridepublic String next() {// TODO Auto-generated method stubString obj = null;if(curr<list.size())obj = list.get(curr++);return obj;}@Overridepublic String first() {// TODO Auto-generated method stubreturn list.get(0);}@Overridepublic boolean isDone() {// TODO Auto-generated method stubreturn curr==list.size();}public String currentItem(){return list.get(curr);}}


package org.ustc.iterator;import java.util.ArrayList;import java.util.List;public class Main {/** * @param args */public static void main(String[] args) {// TODO Auto-generated method stubList<String> peoples = new ArrayList<String>();peoples.add("大鸟");peoples.add("小菜");peoples.add("小偷");MySet set = new ConcreateSet(peoples);Iterator iter = set.createIterator();while(!iter.isDone()){System.out.println(iter.currentItem());iter.next();}}}