Java 9 Stream API : takeWhile, dropWhile, iterate, ofNullable
Les Streams (Java 8) permettent le traitement déclaratif de séquences. Java 9 ajoute quatre méthodes utiles.
1. takeWhile(Predicate)
Prend les éléments tant que le prédicat est true (préfixe le plus long).
default Stream<T> takeWhile(Predicate<? super T> predicate)
Exemple
Stream.of("a","b","c","","e","f")
.takeWhile(s -> !s.isEmpty())
.forEach(System.out::print); // Sortie: abc
S'arrête à la première chaîne vide.
2. dropWhile(Predicate)
Jette les éléments initiaux tant que le prédicat est true, puis garde le reste.
default Stream<T> dropWhile(Predicate<? super T> predicate)
Exemple
Stream.of("a","b","c","","e","f")
.dropWhile(s -> !s.isEmpty())
.forEach(System.out::print); // Sortie: ef
Stream.of("a","b","c","","e","","f")
.dropWhile(s -> !s.isEmpty())
.forEach(System.out::print); // Sortie: ef
3. iterate(seed, hasNext, next)
Version avec condition d'arrêt (hasNext).
static <T> Stream<T> iterate(T seed, Predicate<? super T> hasNext, UnaryOperator<T> next)
Exemple
IntStream.iterate(3, x -> x < 10, x -> x + 3)
.forEach(System.out::println);
// Sortie: 3, 6, 9 (s'arrête avant 12)
4. ofNullable(T)
Crée un stream d'un élément si non-null, sinon stream vide. Évite NullPointerException et vérifications null.
static <T> Stream<T> ofNullable(T t)
Exemple
Stream.ofNullable(100).count(); // 1
Stream.ofNullable(null).count(); // 0
Ces méthodes rendent l'API Stream plus expressive pour les cas courants de filtrage conditionnel et de génération contrôlée.
Java
- Maîtriser les opérateurs Java : Types, syntaxe et exemples pratiques
- Commentaires Java : Types, utilisation et bonnes pratiques
- Maîtriser la boucle for améliorée en Java : Syntaxe, exemples et bonnes pratiques
- Maîtriser les chaînes de caractères en Java : Création, méthodes et bonnes pratiques
- Maîtriser les interfaces Java : concepts, implémentation et bonnes pratiques
- Maîtriser les classes internes anonymes en Java : définition, syntaxe et exemples pratiques
- Maîtriser le try-with-resources Java : gestion automatique des ressources expliquée
- Annotations Java expliquées : types, placement et exemples pratiques
- Assertions Java : guide pratique pour détecter les bugs et assurer la fiabilité du code