这里是我对于在1.8之前的Java中使用Iterable
和Iterator
的重要性的理解。
1)
java.util.AbstractList
是Iterable
,因为它实现了
Iterator<T> iterator();
,这是任何类成为Iterable
的合同。
2)
java.util.AbstractList
通过创建一个实例级内部类来实现
Iterator<T> iterator();
。
private class Itr implements Iterator<E> { ... }
实现hasNext
,next
和remove
方法的迭代器。
private class ListItr extends Itr implements ListIterator<E>{..}
是对List
类型实现的迭代器的额外支持。
3)
这两个接口Iterable
和Iterator
的唯一目的是使任何对象都可以进行迭代吗?请告诉我,如果这两个接口还有其他用途吗?