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

Java ストリームから連続するペアを効率的に生成するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-29 08:19:10152ブラウズ

How Can I Efficiently Generate Consecutive Pairs from a Java Stream?

ストリームからの連続ペアの収集

要素のストリームから連続ペアを生成することは、プログラミングにおける一般的なタスクです。 { 0, 1, 2, 3, 4 } のような単純なストリームを、次のようにペアのストリームに変換するタスクを考えてみましょう: { newpair(0,1),newpair(1,2),newpair(2, 3), new Pair(3, 4) }.

Java 8 では、ストリームは主に、並列処理のためにデータをより小さなチャンクに分割するように設計されています。その結果、ステートフル パイプライン ステージは制限され、隣接するストリーム要素へのアクセスなどの操作は直接サポートされません。

この制限に対処する 1 つのアプローチは、次のようなランダム アクセス データ構造に依存してストリーム インデックスを使用することです。 ArrayList。たとえば、ストリーム要素が ArrayList に格納されている場合、次のように必要なペアを生成できます。

IntStream.range(1, arrayList.size())
             .mapToObj(i -> new Pair(arrayList.get(i-1), arrayList.get(i)))
             .forEach(System.out::println);

このソリューションには、入力ストリームが有限である必要があるという制限があります。ただし、パイプラインの並列実行が可能になります。

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

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