J'essaye de migrer de Guava vers Java 8 Streams, mais je n'arrive pas à comprendre comment gérer les itérations. Voici mon code, pour supprimer des chaînes vides du itérables:Comment remplacer Iterables.filter() avec Streams?
Iterable<String> list = Iterables.filter(
raw, // it's Iterable<String>
new Predicate<String>() {
@Override
public boolean apply(String text) {
return !text.isEmpty();
}
}
);
Faites attention, c'est un Iterable
, pas Collection
. Il peut contenir un illimité quantité d'éléments, je ne peux pas tout charger dans la mémoire. Quelle est mon alternative Java 8?
BTW, avec Lamba ce code sera encore plus court:
Iterable<String> list = Iterables.filter(
raw, item -> !item.isEmpty()
);
De quel type est 'raw'? – shmosel
Quelle est la version de Guava? Ou ne voulez-vous pas utiliser la goyave? – shmosel
@shmosel Je veux me débarrasser de Guava et migrer vers Java 8 Streams, si c'est possible. Peut-être que non. C'est pourquoi demander ici. – yegor256