定义
提供一种方法顺序访问一个容器对象中的各个元素,而又不需要暴露该对象的内部表示。
使用场景
遍历一个容器对象。
Java 代码示例
// 容器
public interface Aggregate<T> {
void add(T t);
void remove(T t);
Iterator<T> iterator();
}
// 具体迭代器
public class ConcreteIterator<T> implements Iterator<T> {
private List<T> mList = new ArrayList<>();
private int cursor = 0;
public ConcreteIterator(List<T> list) {
mList = list;
}
@Override
public boolean hasNext() {
return cursor < mList.size();
}
@Override
public T next() {
if (hasNext()) {
return mList.get(cursor++);
} else {
return null;
}
}
}
// 具体容器
public class ConcreteAggregate<T> implements Aggregate<T> {
private List<T> mList = new ArrayList<>();
@Override
public void add(T t) {
mList.add(t);
}
@Override
public void remove(T t) {
mList.remove(t);
}
@Override
public Iterator<T> iterator() {
return new ConcreteIterator<>(mList);
}
}