ホームページ >Java >&#&チュートリアル >Java 8 ストリームで「takewhile」を実装するにはどうすればよいですか?

Java 8 ストリームで「takewhile」を実装するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-12-27 00:08:10396ブラウズ

How to Implement `takeWhile` in Java 8 Streams?

述語が失敗するまでストリームを制限する方法

Java 8 ストリームは、データを操作および処理するための強力な一連の操作を提供します。これらの操作の中には、最初の要素が指定された述語と一致しなくなるまでストリームを制限する必要があります。この質問では、Java 8 でこの機能を実現する方法について説明します。

Java 9 では、述語に基づいてストリームを制限するために使用できる takewhile 操作が導入されました。ただし、Java 8 の場合は、代替ソリューションを見つける必要があります。

ソリューション

Java 8 で takewhile を実装するには、次のアプローチを使用できます。

  • 要素のシーケンスを生成する反復ストリームを作成する
  • フィルターを使用して、述語に一致する要素のみを含むストリームを作成します。
  • 結果のストリーム内の要素の最大数を設定するには、limit を使用します。

コード例は次のとおりです。

IntStream
    .iterate(1, n -> n + 1)
    .filter(n -> n < 10)
    .limit(-1)
    .forEach(System.out::println);

JDK 9 では、takewhile オペレーションを直接使用できます。次の例に示すように:

IntStream
    .iterate(1, n -> n + 1)
    .takeWhile(n -> n < 10)
    .forEach(System.out::println);

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

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