Java 8 Stream Iteration: Breaking or Return
In traditionellen Java-Iterationen haben wir Break oder Return innerhalb erweiterter for-each-Schleifen zur Steuerung verwendet der Fluss externer Iterationen. Wie können wir ein ähnliches Verhalten in den internen Iterationen von Java 8-Streams erreichen?
Externe Iterationskontrolle
<code class="java">for (SomeObject obj : someObjects) { if (some_condition_met) { break; // Exit the loop early } }</code>
Interne Iteration
Für die Verwendung von forEach mit Lambda-Ausdrücken benötigen wir einen alternativen Ansatz. Es ist wichtig zu beachten, dass forEach für Nebenwirkungen konzipiert ist und keine explizite Möglichkeit bietet, die Iteration zu unterbrechen oder von ihr zurückzukehren.
Alternative Lösungen
Anstelle der Verwendung von forEach Erwägen Sie die Verwendung anderer Stream-Methoden, die eine präzisere Steuerung ermöglichen:
<code class="java">Optional<SomeObject> result = someObjects.stream() .filter(obj -> some_condition_met) .findFirst();</code>
(Diese Optimierung vermeidet die Iteration über die gesamte Sammlung.)
<code class="java">boolean result = someObjects.stream() .anyMatch(obj -> some_condition_met);</code>
Das obige ist der detaillierte Inhalt vonWie steuere ich den Fluss von Java 8 Stream-Iterationen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!