Maison  >  Article  >  Java  >  Comment interrompre ou revenir de l'itération Java 8 Stream forEachLike ?

Comment interrompre ou revenir de l'itération Java 8 Stream forEachLike ?

Linda Hamilton
Linda Hamiltonoriginal
2024-10-24 01:42:02423parcourir

How to Break or Return from Java 8 Stream forEachLike Iteration?

Rupture ou retour du flux Java 8 forEach

Comme l'itération externe utilisant des boucles for-each améliorées, l'itération interne avec les expressions lambda Java 8 nécessite une approche différente pour casser ou retourner. La sortie d'une boucle for-each peut être réalisée à l'aide de l'instruction break ou en renvoyant l'objet actuel.

Dans le cas du stream forEach, ni break ni return ne peuvent être utilisés. La raison en est que forEach est une opération de terminal, ce qui signifie qu'elle exécute un effet secondaire sur chaque élément et ne renvoie aucune valeur.

Alternatives pour rompre ou revenir du flux forEach

Au lieu de cela, il faut envisager d'utiliser d'autres méthodes de flux qui offrent des fonctionnalités différentes :

  • filter() : Pour filtrer les éléments qui ne répondent pas à une condition spécifiée et obtenez un nouveau flux contenant les éléments filtrés.
  • findFirst(): Pour récupérer le premier élément qui satisfait un prédicat donné. Si aucun élément ne correspond, il renvoie un facultatif vide.
  • anyMatch(): Pour vérifier si un élément correspond à un certain prédicat.
  • collect() : Pour réduire le flux en une seule valeur, une collection ou un autre résultat.

Exemple de code

Utilisation de filter() pour trouver le premier élément qui satisfait une condition :

<code class="java">Optional<SomeObject> result =
    someObjects.stream().filter(obj -> some_condition_met).findFirst();</code>

Utiliser anyMatch() pour déterminer si un élément répond à un prédicat :

<code class="java">boolean result = someObjects.stream().anyMatch(obj -> some_condition_met);</code>

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