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

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

Susan Sarandon
Susan Sarandonoriginal
2024-12-27 00:08:10454parcourir

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);

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);

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!

Déclaration:
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