Heim  >  Artikel  >  Java  >  Wie unterbreche ich die Java 8 Stream forEachLike-Iteration oder kehre zurück?

Wie unterbreche ich die Java 8 Stream forEachLike-Iteration oder kehre zurück?

Linda Hamilton
Linda HamiltonOriginal
2024-10-24 01:42:02423Durchsuche

How to Break or Return from Java 8 Stream forEachLike Iteration?

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:

  • filter(): Um Elemente herauszufiltern, die eine bestimmte Bedingung nicht erfüllen und erhalten Sie einen neuen Stream mit den gefilterten Elementen.
  • findFirst(): Um das erste Element abzurufen, das ein bestimmtes Prädikat erfüllt. Wenn kein Element übereinstimmt, wird ein leeres Optional zurückgegeben.
  • anyMatch(): Um zu überprüfen, ob ein Element mit einem bestimmten Prädikat übereinstimmt.
  • collect(): Um den Stream auf einen einzelnen Wert, eine einzelne Sammlung oder ein anderes Ergebnis zu reduzieren.

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn