Java 8 Stream forEach の中断または復帰
Java 8 ストリームの forEach メソッドは、これにより、for-each のような明示的なループが不要になります。ただし、break や return などの従来の制御フロー メカニズムはサポートされていません。
ラムダ式で forEach を使用する場合、目標は次のとおりです。コレクションの各要素に対して何らかの操作を実行します。特定の条件に基づいてこの反復を中断する必要がある場合は、代わりに代替ストリーム操作を使用することを検討してください。
たとえば、特定の条件を満たす最初の要素を見つけるには、findFirst:
<code class="java">Optional<SomeObject> result = someObjects.stream() .filter(obj -> some_condition_met) .findFirst();</code>
findFirst オペレーションは、一致する要素が存在する場合はそれを含む Optional を返し、一致する要素が見つからない場合は空の Optional を返します。
コレクション内のいずれかの要素が条件を満たすかどうかだけを判断する必要がある場合は、anyMatch:
<code class="java">boolean result = someObjects.stream().anyMatch(obj -> some_condition_met);</code>
を使用します。anyMatch オペレーションは次の値を返します。少なくとも 1 つの要素が条件を満たす場合は true、それ以外の場合は false。
適切なストリーム操作を活用することで、break と return は、forEach ループの内部メカニズムを変更しません。
以上がJava 8 Streams forEach でブレークとリターンを使用して制御フローを処理する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。