Iterator
需要一个专门的遍历接口。
interface Iterator<T> {
boolean hasNext();
T next();
}
interface Collection<T> {
Iterator<T> iterator();
}
含有迭代器的集合
class List implements Collection<Integer>{
private Integer[] elements;
public List() {
elements = new Integer[]{1, 2, 3, 4, 5, 6, 7, 8, 9, 0};
}
public Iterator<Integer> iterator() {
return new ArrayListIterator();
}
private class ArrayListIterator implements Iterator<Integer> {
private int currentIndex = 0;
public boolean hasNext() {
return currentIndex < elements.length;
}
public Integer next() {
return elements[currentIndex++];
}
}
}
客户端
public static void main(String[] args) {
List list = new List();
Iterator<Integer> it = list.iterator();
while (it.hasNext()) {
System.out.println(it.next());
}
}