コピーせずにイテレータをストリームに変換する
イテレータをストリームに変換すると、不要なストリームを作成せずにストリームの強力な機能を活用するのに役立ちます。オリジナルコレクションのコピー。ただし、パフォーマンス上の理由から、コピーを避けることが重要です。
効果的なアプローチの 1 つは、Java の Spliterator インターフェイスを活用することです。イテレータから Spliterator を作成し、ストリームの基礎を提供できます。
<code class="java">Iterator<String> sourceIterator = Arrays.asList("A", "B", "C").iterator(); Stream<String> targetStream = StreamSupport.stream( Spliterators.spliteratorUnknownSize(sourceIterator, Spliterator.ORDERED), false);</code>
別の方法は、より読みやすいと感じる人もいるかもしれませんが、ラムダを使用してイテレータから Iterable を作成することです。関数インターフェイス:
<code class="java">Iterator<String> sourceIterator = Arrays.asList("A", "B", "C").iterator(); Iterable<String> iterable = () -> sourceIterator; Stream<String> targetStream = StreamSupport.stream(iterable.spliterator(), false);</code>
このメソッドは中間リストの必要性を回避し、イテレータからストリームへの効率的な変換を保証します。
以上が不要なコピーを作成せずにイテレータをストリームに変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。