package java.lang;
import java.util.Iterator;
import java.util.Objects;
import java.util.Spliterator;
import java.util.Spliterators;
import java.util.function.Consumer;
/**
* 继承该接口,可使用foreach()循环,可返回迭代器Iterator
*/
public interface Iterable<T> {
/**
* 返回一个迭代器
*/
Iterator<T> iterator();
/**
* 按照迭代顺序,操作迭代器的元素。
*/
default void forEach(Consumer<? super T> action) {
Objects.requireNonNull(action);
for (T t : this) {
action.accept(t);
}
}
/**
* 创建spliterator
*/
default Spliterator<T> spliterator() {
return Spliterators.spliteratorUnknownSize(iterator(), 0);
}
}
源码学习之Iterable
最新推荐文章于 2022-06-29 12:13:36 发布