Java 8'de , merakla bir yöntemi olan Stream <T> sınıfına sahibiz
Iterator<T> iterator()
Dolayısıyla , tam olarak bu yöntemi gerektiren Yinelenebilir <T> arabirimini uygulamasını beklersiniz , ancak durum böyle değildir.
Bir foreach döngüsü kullanarak bir Stream üzerinde yineleme yapmak istediğimde,
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)) { ... }
Burada bir şey mi eksik?
Stream
Iterable
getIterable()
içinreturn s::iterator;
for (T element : stream::iterator)
Akış da uygulamak olsaydı ben hala tercih ediyorum bu yüzden, Iterable
ya bir yöntem toIterable()
.