Stream takeWhile / dropWhile
Prenez ou abandonnez des éléments d'un stream selon un prédicat.
Comparaison de Code
✕ Java 8
List<Integer> result = new ArrayList<>();
for (int n : sorted) {
if (n >= 100) break;
result.add(n);
}
// no stream equivalent in Java 8
✓ Java 9+
var result = sorted.stream()
.takeWhile(n -> n < 100)
.toList();
// or: .dropWhile(n -> n < 10)
Un problème avec ce code ? Dites-le nous.
Pourquoi la méthode moderne gagne
Court-circuit
Arrête le traitement dès que le prédicat échoue.
Compatible avec les pipelines
S'enchaîne avec d'autres opérations de stream naturellement.
Déclaratif
takeWhile se lit comme de l'anglais : 'prend tant que inférieur à 100'.
Ancienne Approche
Boucle manuelle
Approche Moderne
takeWhile/dropWhile
Depuis JDK
9
Difficulté
Débutant
Support JDK
Stream takeWhile / dropWhile
Disponible
Disponible depuis JDK 9 (sept. 2017)
Comment ça fonctionne
takeWhile() retourne des éléments tant que le prédicat est vrai et s'arrête au premier faux. dropWhile() ignore les éléments tant que c'est vrai et retourne le reste. Les deux fonctionnent mieux sur les streams ordonnés.
Documentation Associée