不要なコピーを作成せずにイテレータをストリームに変換するにはどうすればよいですか?

Patricia Arquette
リリース: 2024-11-06 13:11:02
オリジナル
187 人が閲覧しました

How can I convert an Iterator to a Stream without creating unnecessary copies?

コピーせずにイテレータをストリームに変換する

イテレータをストリームに変換すると、不要なストリームを作成せずにストリームの強力な機能を活用するのに役立ちます。オリジナルコレクションのコピー。ただし、パフォーマンス上の理由から、コピーを避けることが重要です。

効果的なアプローチの 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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!