要素のストリームから連続ペアを生成することは、プログラミングにおける一般的なタスクです。 { 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 サイトの他の関連記事を参照してください。