Di Java 8 kita memiliki Stream kelas <T> , yang anehnya memiliki metode
Iterator<T> iterator()
Jadi Anda akan mengharapkannya untuk mengimplementasikan antarmuka Iterable <T> , yang membutuhkan metode ini, tapi bukan itu masalahnya.
Ketika saya ingin mengulangi Stream menggunakan loop foreach, saya harus melakukan sesuatu seperti
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)) { ... }
Apakah saya melewatkan sesuatu di sini?
Stream
ke API lawas yang diharapkanIterable
getIterable()
menjadireturn s::iterator;
for (T element : stream::iterator)
, jadi saya masih lebih suka jika Stream juga menerapkan Iterable
atau metode toIterable()
.