Java 9 API Stream améliorée
L'API Stream améliorée de Java 9 a ajouté des méthodes pratiques pour faciliter le traitement des flux et utiliser des collecteurs pour écrire des requêtes complexes.
Java 9 a ajouté plusieurs méthodes à Stream : dropWhile, takeWhile, ofNullable, et a ajouté une méthode surchargée pour la méthode iterate.
méthode takeWhile
Syntaxe
default Stream<T> takeWhile(Predicate<? super T> predicate)
La méthode takeWhile() prend un prédicat en argument et renvoie un sous-ensemble du Stream donné jusqu'à ce que l'instruction du prédicat retourne false pour la première fois. Si la première valeur ne satisfait pas la condition du prédicat, un Stream vide sera renvoyé.
Dans un Stream ordonné, takeWhile renvoie autant d'éléments que possible depuis le début ; dans un Stream non ordonné, takeWhile renvoie un sous-ensemble d'éléments depuis le début qui répondent aux exigences du Predicate.
Exemple
Dans l'exemple ci-dessus, la méthode takeWhile arrête la sortie de la boucle lorsqu'elle rencontre une chaîne vide, et la sortie d'exécution est :
abc
méthode dropWhile
Syntaxe
default Stream<T> dropWhile(Predicate<? super T> predicate)
La méthode dropWhile est l'opposé de takeWhile. Elle prend un prédicat en argument et renvoie un sous-ensemble du Stream donné uniquement jusqu'à ce que l'instruction du prédicat renvoie false pour la première fois.
Exemple
Dans l'exemple ci-dessus, la méthode dropWhile commence la sortie de boucle lorsqu'elle rencontre une chaîne vide, et la sortie d'exécution est :
ef
méthode iterate
Syntaxe
static <T> Stream<T> iterate(T seed, Predicate<? super T> hasNext, UnaryOperator<T> next)
La méthode permet de créer un stream séquentiel (éventuellement infini) à l'aide d'une valeur d'amorçage initiale, et en appliquant de manière itérative la méthode next spécifiée. Lorsque le prédicat hasNext spécifié renvoie false, l'itération s'arrête.
Exemple
La sortie d'exécution est :
3 6 9
méthode ofNullable
Syntaxe
static <T> Stream<T> ofNullable(T t)
La méthode ofNullable peut empêcher les NullPointerExceptions et éviter les valeurs null en vérifiant le flux.
Si l'élément spécifié n'est pas null, elle récupère un élément et génère un stream à un seul élément ; si l'élément est null, elle renvoie un stream vide.
Exemple
La sortie d'exécution est :
1 0Autres extensions
Nouveautés de Java 9