ホームページ >Java >&#&チュートリアル >Java 8 Streams forEach でブレークとリターンを使用して制御フローを処理する方法は?

Java 8 Streams forEach でブレークとリターンを使用して制御フローを処理する方法は?

Patricia Arquette
Patricia Arquetteオリジナル
2024-10-23 22:12:02402ブラウズ

How to Handle Control Flow with break and return in Java 8 Streams forEach?

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

Java 8 ストリームの forEach メソッドは、これにより、for-each のような明示的なループが不要になります。ただし、breakreturn などの従来の制御フロー メカニズムはサポートされていません。

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

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