Iterable 接口是 Collection 的父接口,实现了这个接口的 Class 可以用在 for-each 循环当中。
Iterable 借口主要定义了 3 个方法:
1. iterator
Iterator<T> iterator();
返回集合的迭代器。
2. forEach
default void forEach(Consumer<? super T> action) {
Objects.requireNonNull(action);
for (T t : this) {
action.accept(t);
}
}
这个方法接收一个 Consumer 方法,然后对集合中的每个元素执行这个 Consumer 方法。
3. spliterator
default Spliterator<T> spliterator() {
return Spliterators.spliteratorUnknownSize(iterator(), 0);
}
返回一个 Spliterator,至于 Spliterator 是做什么用的,暂时先不用管他。
参考链接:
1. https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html
2. https://docs.oracle.com/javase/8/docs/technotes/guides/language/foreach.html