Java 8 ストリームの反復: ブレークまたはリターン
従来の Java 反復では、制御するために拡張された for-each ループ内でブレークまたはリターンを使用していました。外部反復の流れ。 Java 8 ストリームの内部反復で同様の動作を実現するにはどうすればよいですか?
外部反復制御
<code class="java">for (SomeObject obj : someObjects) { if (some_condition_met) { break; // Exit the loop early } }</code>
内部反復
ラムダ式で forEach を使用するには、別のアプローチが必要です。 forEach は副作用を考慮して設計されており、反復を中断したり反復から戻るための明示的な方法を提供していないことに注意することが重要です。
代替ソリューション
forEach を使用する代わりに、より正確な制御を提供する他のストリーム メソッドの使用を検討してください:
<code class="java">Optional<SomeObject> result = someObjects.stream() .filter(obj -> some_condition_met) .findFirst();</code>
(この最適化により、コレクション全体の反復が回避されます。)
<code class="java">boolean result = someObjects.stream() .anyMatch(obj -> some_condition_met);</code>
以上がJava 8 ストリームの反復フローを制御するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。