Unterbrechung oder Rückkehr vom Java 8 Stream forEach
Wie die externe Iteration mit erweiterten for-each-Schleifen erfordert die interne Iteration mit Java 8-Lambda-Ausdrücken ein anderer Ansatz zum Brechen oder Zurückgeben. Das Ausbrechen aus einer for-each-Schleife kann mit der break-Anweisung oder durch die Rückgabe des aktuellen Objekts erfolgen.
Im Fall von stream forEach können weder break noch return verwendet werden. Der Grund dafür ist, dass forEach eine Terminaloperation ist, was bedeutet, dass sie einen Nebeneffekt auf jedes Element ausführt und keinen Wert zurückgibt.
Alternativen zum Unterbrechen oder Zurückkehren aus dem Stream forEach
Stattdessen sollte man erwägen, andere Stream-Methoden zu verwenden, die andere Funktionen bieten:
Beispielcode
Verwenden von filter(), um das erste Element zu finden das eine Bedingung erfüllt:
<code class="java">Optional<SomeObject> result = someObjects.stream().filter(obj -> some_condition_met).findFirst();</code>
AnyMatch() verwenden, um zu bestimmen, ob ein Element ein Prädikat erfüllt:
<code class="java">boolean result = someObjects.stream().anyMatch(obj -> some_condition_met);</code>
Das obige ist der detaillierte Inhalt vonWie unterbreche ich die Java 8 Stream forEachLike-Iteration oder kehre zurück?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!