最佳答案
在Java 8中,我们有Stream< T >类,它奇怪地有一个方法
Iterator<T> iterator()
所以你会期望它实现接口Iterable< T >,这恰好需要这个方法,但事实并非如此。
当我想使用foreach循环遍历一个流时,我必须做如下的事情
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)) { ... }
我是不是遗漏了什么?