Rumah > Java > javaTutorial > Bagaimanakah Kita Boleh Menjana Pasangan Berturut-turut dengan Cekap daripada Aliran Unsur?

Bagaimanakah Kita Boleh Menjana Pasangan Berturut-turut dengan Cekap daripada Aliran Unsur?

Susan Sarandon
Lepaskan: 2024-12-15 12:54:25
asal
867 orang telah melayarinya

How Can We Efficiently Generate Successive Pairs from a Stream of Elements?

Pasangan Berturut-turut daripada Strim

Memandangkan aliran primitif atau objek seperti {0, 1, 2, 3, 4}, bagaimana kita boleh mengubahnya dengan mudah menjadi pasangan berturut-turut, seperti yang digambarkan di bawah?

{new Pair(0, 1), new Pair(1, 2), new Pair(2, 3), new Pair(3, 4)}
Salin selepas log masuk

Menyelidiki Penyelesaian

Walaupun perpustakaan Java 8 streams cemerlang dalam membahagikan strim kepada bahagian yang boleh diurus untuk pemprosesan selari, ia menimbulkan cabaran untuk peringkat saluran paip stateful. Mendapatkan semula indeks elemen strim semasa atau mengakses elemen bersebelahan adalah had yang ketara.

Untuk memintas kekangan ini, kami sering menggunakan teknik yang melibatkan memanfaatkan indeks untuk memacu strim. Berikut ialah gambaran bagaimana kita boleh menjana pasangan dengan pendekatan ini:

Coretan Kod:

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

Menjelaskan Penyelesaian:

Dalam contoh ini, kami mengulangi melalui ArrayList dengan indeks bermula dari 1, menjamin bahawa untuk setiap indeks i, kita boleh mengakses kedua-dua arrayList.get(i-1) dan arrayList.get(i). Inti kod ialah fungsi mapToObj, yang menukarkan setiap indeks kepada Pasangan yang mengandungi elemen bersebelahan.

Batasan dan Sambungan:

Walaupun pendekatan ini berkesan untuk strim terhingga yang disimpan dalam koleksi akses rawak, ia tidak berkenaan dengan strim tak terhingga. Walau bagaimanapun, saluran paip boleh dilaksanakan secara selari, menawarkan faedah prestasi.

Atas ialah kandungan terperinci Bagaimanakah Kita Boleh Menjana Pasangan Berturut-turut dengan Cekap daripada Aliran Unsur?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan