說明:
- Iterable接口是Java集合框架的頂級接口化漆,實現(xiàn)此接口使集合對象可以通過迭代器遍歷自身元素付材。
源碼:
package java.lang;
import java.util.Iterator;
import java.util.Objects;
import java.util.Spliterator;
import java.util.Spliterators;
import java.util.function.Consumer;
public interface Iterable<T> {
/**
* iterator為Java中的迭代器對象富寿,是能夠對List這樣的集合進行迭代遍歷的底層依賴银萍。
* 而iterable接口里定義了返回iterator的方法滤蝠,相當于對iterator的封裝览闰,
* 同時實現(xiàn)了iterable接口的類可以支持for each循環(huán)
*/
Iterator<T> iterator();
/**
* 對Iterable中的元素進行指定的操作
* java8中forEach()方法是為了方便遍歷并操作集合內的元素
*/
default void forEach(Consumer<? super T> action) {
Objects.requireNonNull(action);
for (T t : this) {
action.accept(t);
}
}
/**
* java8返回一個內部元素為T類型的并行迭代器
* spliterator()方法則提供了一個可以并行遍歷元素的迭代器压鉴,以適應現(xiàn)在cpu多核時代并行遍歷的需求署拟。
*/
default Spliterator<T> spliterator() {
return Spliterators.spliteratorUnknownSize(iterator(), 0);
}
}
注:
- Java8新加了default關鍵字推穷,被其修飾的方法可以不必由子類實現(xiàn)蟹腾,并且由dafault修飾的方法在接口中有方法體。