Itération de flux Java 8 : rupture ou retour
Dans les itérations Java traditionnelles, nous avons utilisé la pause ou le retour dans des boucles for-each améliorées pour contrôler le flux d’itérations externes. Comment pouvons-nous obtenir un comportement similaire dans les itérations internes des flux Java 8 ?
Contrôle des itérations externes
<code class="java">for (SomeObject obj : someObjects) { if (some_condition_met) { break; // Exit the loop early } }</code>
Itération interne
En utilisant forEach avec des expressions lambda, nous avons besoin d'une approche alternative. Il est important de noter que forEach est conçu pour les effets secondaires et ne fournit pas de moyen explicite d'interrompre ou de revenir de l'itération.
Solutions alternatives
Au lieu d'utiliser forEach , envisagez d'utiliser d'autres méthodes de flux offrant un contrôle plus précis :
<code class="java">Optional<SomeObject> result = someObjects.stream() .filter(obj -> some_condition_met) .findFirst();</code>
(Cette optimisation évite d'itérer sur toute la collection.)
<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!