迭代器模式:提供一种方法顺序访问一个聚合对象中的各个元素,而又不暴露该对象的内部表示。
public interface Iterator<T> {
public T next();
public boolean isDone();
public T currentItem();
}
public class ConcreteIterator implements Iterator {
private ConcreteComponent component;
private int current = 0;
public ConcreteIterator(ConcreteComponent component) {
this.component = component;
}
@Override
public Object next() {
Object res = null;
current++;
if (current < component.size()) {
res = component.get(current);
}
return res;
}
@Override
public boolean isDone() {
return current >= component.size() ? true : false;
}
@Override
public Object currentItem() {
return component.get(current);
}
}
public interface Component {
public Iterator createIterator();
}
public class ConcreteComponent extends ArrayList implements Component{
@Override
public Iterator createIterator() {
return new ConcreteIterator(this);
}
public int getCount(){
return this.size();
}
}
public class IteratorDemo {
public static void main(String[] args) {
ConcreteComponent component = new ConcreteComponent();
component.add("AAA");
component.add("BBB");
component.add("CCC");
Iterator iterator = new ConcreteIterator(component);
while (!iterator.isDone()) {
System.out.println("当前:" + iterator.currentItem());
iterator.next();
}
}
}