Maison > Java > javaDidacticiel > Comment implémenter « takeWhile » dans les flux Java 8 ?

Comment implémenter « takeWhile » dans les flux Java 8 ?

Susan Sarandon
Libérer: 2024-12-27 00:08:10
original
388 Les gens l'ont consulté

How to Implement `takeWhile` in Java 8 Streams?

Comment limiter un flux jusqu'à l'échec d'un prédicat

Les flux Java 8 fournissent un ensemble puissant d'opérations pour manipuler et traiter les données. Parmi ces opérations, il y a la nécessité de limiter un flux jusqu'à ce que le premier élément ne corresponde pas à un prédicat donné. Cette question explore comment obtenir cette fonctionnalité dans Java 8.

Dans Java 9, l'opération takeWhile a été introduite, qui peut être utilisée pour limiter un flux basé sur un prédicat. Cependant, pour Java 8, nous devons trouver une solution alternative.

Solution

Pour implémenter takeWhile en Java 8, nous pouvons utiliser l'approche suivante :

  • Créez un flux itéré qui génère une séquence d'éléments indéfiniment.
  • Utilisez le filtre pour créez un flux qui inclut uniquement les éléments qui correspondent au prédicat.
  • Utilisez la limite pour définir le nombre maximum d'éléments dans le flux résultant.

Voici un exemple de code :

IntStream
    .iterate(1, n -> n + 1)
    .filter(n -> n < 10)
    .limit(-1)
    .forEach(System.out::println);
Copier après la connexion

Dans JDK 9, l'opération takeWhile peut être utilisée directement, comme le montre l'exemple suivant :

IntStream
    .iterate(1, n -> n + 1)
    .takeWhile(n -> n < 10)
    .forEach(System.out::println);
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal