Collection
Collection是集合框架老祖,定义了一些集合框架的一些规范,更重要的是体现了多态
Iterable和Iterator
Collection继承了Iterable接口:
public interface Iterable<T> {
/**
* Returns an iterator over a set of elements of type T.
*
* @return an Iterator.
*/
Iterator<T> iterator();
}
Iterator是迭代器,实现Interable接口,就可以使用迭代器。为什么绕了这么一个弯子,在Interable中放了Iterator,而不直接实现Iterator呢?
猜想:这涉及到当前迭代位置的问题,我们希望每一次使用迭代器都是从头开始,但是直接实现Iterator的话,集合间迭代位置的指针是“传递”的。源码阅读刚刚起步,我不多bb,把狄式猜想搁在这里,留与以后打脸。