import java.util.ArrayList;
import java.util.List;
/**
* 迭代器模式
* 关键:
* Iterator接口:定义获取开始,下一个,上一个,结尾等等对像方法
* ConcreateIterator类:实现Iterator接口
* @author zbl
*
*/
public class IteratorCustomer {
public static void main(String[] args) {
List<Integer> list = new ArrayList<Integer>();
list.add(1);
list.add(2);
list.add(3);
Iterator iterator = new ConcreteIterator(list);
while(iterator.hasNext()){
Object object = iterator.next();
System.out.println(object);
}
}
}
interface Iterator{
public Object first();
public Object next();
public Object prev();
public Object end();
public boolean hasNext();
}
class ConcreteIterator implements Iterator{
private int current = -1;
private List list;
public ConcreteIterator(List list){
this.list = list;
}
@Override
public Object first() {
return list.get(0);
}
@Override
public Object next() {
current = current + 1;
if(current<list.size()){
return list.get(current);
}
return null;
}
@Override
public Object prev() {
current = current - 1;
if(current>=0){
return list.get(current);
}
return null;
}
@Override
public Object end() {
return list.get(list.size()-1);
}
@Override
public boolean hasNext() {
return current+1>=list.size()?false:true;
}
}