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!