上车买票
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;
}
@Override
public Iterator createIterator() {
// TODO Auto-generated method stub
return 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;
}
@Override
public String next() {
// TODO Auto-generated method stub
String obj = null;
if(curr<list.size())
obj = list.get(curr++);
return obj;
}
@Override
public String first() {
// TODO Auto-generated method stub
return list.get(0);
}
@Override
public boolean isDone() {
// TODO Auto-generated method stub
return 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 stub
List<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();
}
}
}