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

Linda Hamilton
リリース: 2024-10-24 01:42:02
オリジナル
509 人が閲覧しました

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 サイトの他の関連記事を参照してください。

ソース:php
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート