Dans Java 8, nous avons la classe Stream<T>, qui curieusement ont une méthode
Iterator<T> iterator()
Si vous vous attendez à la mise en place de l'interface objet iterable<T>, ce qui nécessite exactement cette méthode, mais ce n'est pas le cas.
Lorsque je veux effectuer une itération sur un Flux de données à l'aide d'une boucle foreach, je dois faire quelque chose comme
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)) { ... }
Suis-je manqué quelque chose?