Maison >Java >javaDidacticiel >Comment gérer le flux de contrôle avec pause et retour dans Java 8 Streams forEach ?

Comment gérer le flux de contrôle avec pause et retour dans Java 8 Streams forEach ?

Patricia Arquette
Patricia Arquetteoriginal
2024-10-23 22:12:02402parcourir

How to Handle Control Flow with break and return in Java 8 Streams forEach?

Pause ou retour du flux Java 8 forEach

La méthode forEach des flux Java 8 fournit une itération interne sur un collection, éliminant le besoin de boucles explicites comme for-each. Cependant, il ne prend pas en charge les mécanismes de flux de contrôle traditionnels tels que break et return.

Lors de l'utilisation de forEach avec des expressions lambda, l'objectif est pour effectuer une opération sur chaque élément de la collection. Si vous devez interrompre cette itération en fonction d'une condition spécifique, envisagez plutôt d'utiliser des opérations de flux alternatives.

Par exemple, pour rechercher le premier élément qui répond à une condition particulière, utilisez findFirst :

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

L'opération findFirst renvoie un Optional contenant l'élément correspondant, s'il est présent, ou un Optional vide si aucune correspondance n'est trouvée.

Si vous avez uniquement besoin de déterminer si un élément de la collection remplit une condition, utilisez anyMatch :

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

L'opération anyMatch renvoie true si au moins un élément satisfait à la condition, sinon false.

En tirant parti des opérations de flux appropriées, vous pouvez obtenir une fonctionnalité de flux de contrôle similaire à break et retour sans modifier la mécanique interne de la boucle forEach.

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