在Java 8中,我们有类Stream <T>,它奇怪地有一个方法
Iterator<T> iterator()
因此,您可能希望它实现接口Iterable <T>,而该接口正是需要此方法,但事实并非如此。
当我想使用foreach循环遍历Stream时,我必须做类似的事情
public static Iterable<T> getIterable(Stream<T> s) {
return new Iterable<T> {
@Override
public Iterator<T> iterator() {
return s.iterator();
}
};
}
for (T element : getIterable(s)) { ... }
我在这里想念什么吗?
Stream
给预期的旧版APIIterable
getIterable()
至return s::iterator;
for (T element : stream::iterator)
,所以我还是希望Stream也可以实现Iterable
或方法toIterable()
。