Iterable与Iterator的区别
1.从表面的意思去理解
Iterable:顾名思义,实现了这个接口的集合对象就支持迭代操作,是可迭代的。able结尾表示 能…样,可以做…
Iterator:在英语中or结尾都是表示 …样的人或者 …者。如creator就是创作者的意思。这里也是一样:Iterator就是迭代者,我们一般叫迭代器,它就是提供迭代机制的对象,具体如何迭代,都是Iterator接口规范的。
2.Iterable
一个集合对象要表明自己支持迭代,能有使用foreach语句的特权,就必须实现Iterable接口,表明我是可迭代的!然而实现Iterable接口,就必须为foreach语句提供一个迭代器。
这个接口里面只有一个用Iterator接口定义的iterator方法,也就是iterator方法需要返回一个Iterator对象。
// Iterable JDK源码
// 可以通过成员内部类,方法内部类,甚至匿名内部类去实现Iterator
public interface Iterable