問題:
Iterable
解決策:
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 サイトの他の関連記事を参照してください。