ホームページ >Java >&#&チュートリアル >Java Iterable をストリームに効率的に変換するにはどうすればよいですか?

Java Iterable をストリームに効率的に変換するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-11-26 12:45:13416ブラウズ

How to Efficiently Convert Java Iterables to Streams?

Java 8 で Iterable を Streams に変換する

問題:

Iterable を返すインターフェイスがあります。で、Java 8 Stream API を使用してデータを操作したいと考えています。ただし、Iterable は stream() メソッドをサポートしていません。

解決策:

Iterable を List に変換せずに Stream に変換するには、次のようにします。 StreamSupport.stream() メソッド。このメソッドは、Iterable の spliterator() メソッドから取得できる Spliterator オブジェクトを受け取ります。

Iterable を Stream に変換する方法の例を次に示します。

Iterable<T> iterable = ...;
Stream<T> stream = StreamSupport.stream(iterable.spliterator(), false);

ストリームを使用すると、フィルタリング、マッピング、フィルタリングなどの通常のストリーム操作を実行できます。

注:

StreamSupport.stream() メソッドは、splitteratorUnknownSize() メソッドを直接使用する場合と比較して、Iterable を Stream に変換する効率的な方法を提供します。 。 spliteratorUnknownSize() メソッドは常に新しい Spliterator オブジェクトを作成しますが、Iterable がすでにコレクションである場合は非効率的になる可能性があります。 StreamSupport.stream() メソッドは、Iterable の既存の Spliterator オブジェクトを使用します (利用可能な場合)。その結果、パフォーマンスが向上します。

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

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