迭代器模式(Iterator Pattern):提供一种方法来访问聚合对象中的各个元素,而不用暴露这个对象的内部表示。在Java中,LinkedList的迭代器有三种:Iterator、ListIterator、DescendingIterator。其中DescendingIterator与Iterator只能单向遍历,遍历的方向相反。而ListIterator可以双向遍历。
DescendingIterator
/**
* Adapter to provide descending iterators via ListItr.previous
*/
private class DescendingIterator implements Iterator {
private final ListItr itr = new ListItr(size());
public boolean hasNext() {
return itr.hasPrevious();
}
public E next() {
return itr.previous();
}
public void remove() {
itr.remove();
}
}
本文不涉及迭代器具体方法的实现细节,只讲迭代器模式在LinkedList源码中的使用。而迭代器模式在LinkedList源码中的使用和在ArrayList和Vector中的使用是非常类似的,只是next()等等方法的实现细节不同而已。所以本文就不详细讲解了,请大家参考ArrayList与迭代器模式和Vector与迭代器模式两篇文章。