ホームページ >Java >&#&チュートリアル >リストを使用せずにイテラブルを Java 8 ストリームに変換するにはどうすればよいですか?

リストを使用せずにイテラブルを Java 8 ストリームに変換するにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-19 03:55:03493ブラウズ

How Can I Convert an Iterable to a Java 8 Stream Without Using a List?

Java 8 JDK で Iterable を Stream に変換する

問題:

Java 8 を使用して Iterable を操作するにはどうすればよいですかList に変換せずに API をストリームしますか?

解決策:

tl;dr: StreamSupport.stream(iterable.spliterator(),

詳細な説明:

Iterable は、Spliterator を返す Spliterator() メソッドを提供します。これは、 StreamSupport.stream を使用してストリームします。コード スニペットは次のとおりです。

StreamSupport.stream(iterable.spliterator(), false)
    .filter(...)
    .moreStreamOps(...);

このアプローチにより、List への不必要な変換が回避され、パフォーマンスとメモリ消費が向上します。 StreamSupport.stream は 2 つの引数を取ります:

  • iterable.spliterator(): Iterable から取得された Spliterator。
  • false: Iterable が既知のサイズを持たないことを指定します。

結果のストリームは、フィルター、マップなどの Stream API 操作を使用して操作できます。

利点:

StreamSupport.stream を使用すると、次のことが可能になります。次の利点:

  • 利便性: スプリッテレータを手動で処理するよりも簡単でエラーが発生しにくくなります。
  • 効率: より優れたスプリッテレータが得られます。特に Iterable がすでにコレクションである場合のストリームのパフォーマンス。
  • メモリの節約: List への不必要な変換を回避し、メモリのオーバーヘッドを削減します。

以上がリストを使用せずにイテラブルを Java 8 ストリームに変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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