ホームページ  >  記事  >  Java  >  EachLike 反復で Java 8 ストリームを中断または復帰するにはどうすればよいですか?

EachLike 反復で Java 8 ストリームを中断または復帰するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-10-24 01:42:02423ブラウズ

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

Java 8 Stream forEach の中断または復帰

拡張された for-each ループを使用した外部反復と同様、Java 8 ラムダ式を使用した内部反復には以下が必要です壊れたり戻ったりするための別のアプローチ。 for-each ループから抜け出すには、break ステートメントを使用するか、現在のオブジェクトを返すことによって実行できます。

ストリーム forEach の場合、break も return も使用できません。この理由は、forEach が終端操作であるためです。つまり、各要素に対して副作用が実行され、値が返されません。

forEach のストリームを中断またはストリームから復帰するための代替手段

代わりに、異なる機能を提供する他のストリーム メソッドの使用を検討する必要があります:

  • filter(): 指定された条件を満たさない要素をフィルターで除外するには
  • findFirst(): 指定された述語を満たす最初の要素を取得します。一致する要素がない場合は、空の Optional を返します。
  • anyMatch(): 要素が特定の述語に一致するかどうかを確認するには。
  • collect(): ストリームを単一の値、コレクション、またはその他の結果に縮小します。

コード例

最初の要素を検索するための filter() の使用条件を満たすもの:

<code class="java">Optional<SomeObject> result =
    someObjects.stream().filter(obj -> some_condition_met).findFirst();</code>

anyMatch() を使用して、要素が述語を満たすかどうかを判断します:

<code class="java">boolean result = someObjects.stream().anyMatch(obj -> some_condition_met);</code>

以上がEachLike 反復で Java 8 ストリームを中断または復帰するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。