ホームページ >Java >&#&チュートリアル >Java ストリームから連続する要素をペアリングするにはどうすればよいですか?

Java ストリームから連続する要素をペアリングするにはどうすればよいですか?

DDD
DDDオリジナル
2024-11-28 20:26:12161ブラウズ

How Can I Pair Consecutive Elements from a Java Stream?

ストリーム要素のペアリング

{0, 1, 2, 3, 4} のような要素のストリームがある場合、どうすれば変換できますかそれを連続する要素のペアにします (Pairオブジェクト)?

答え:

Java 8 ストリーム ライブラリは、ストリームを並列処理のために小さな部分に分割することに特化しており、ステートフル パイプライン ステージを制限しています。したがって、隣接するストリーム要素に直接アクセスしたり、そのインデックスを取得したりすることはできません。

この制限を克服するには、ストリーム要素にインデックスを付け、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 までご連絡ください。