17-迭代器模式
1.迭代器模式
- 迭代器模式服务端
public interface Iterator<E> {
boolean hasNext();
E next();
}
public class ArrayIterator<E> implements Iterator<E> {
private int cursor;
private final ArrayList<E> arrayList;
public ArrayIterator(ArrayList<E> arrayList) {
this.cursor = 0;
this.arrayList = arrayList;
}
@Override
public boolean hasNext() {
return cursor != arrayList.size();
}
@Override
public E next() {
return arrayList.get(cursor++);
}
}
- 迭代器模式客户端。
ArrayList<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);
ArrayIterator<Integer> arrayIterator = new ArrayIterator<>(list);
while (arrayIterator.hasNext()) {
System.out.println(arrayIterator.next());
}
2.迭代器模式总结
- 迭代器模式主要用于将集合的遍历操作从集合中拆分出来,放到迭代器中,让集合和迭代器的职责变得单一。