Menjana pasangan berturut-turut daripada aliran unsur ialah tugas biasa dalam pengaturcaraan. Pertimbangkan tugas menukar strim mudah seperti { 0, 1, 2, 3, 4 } kepada strim pasangan seperti berikut: { Pair baru(0, 1), Pair baru(1, 2), Pair baru(2, 3), new Pair(3, 4) }.
Dalam Java 8, strim direka terutamanya untuk memisahkan data kepada ketulan yang lebih kecil untuk selari pemprosesan. Akibatnya, peringkat saluran paip stateful adalah terhad dan operasi seperti mengakses elemen aliran bersebelahan tidak disokong secara langsung.
Satu pendekatan untuk menangani had ini ialah menggunakan indeks strim dengan bergantung pada struktur data capaian rawak seperti sebuah ArrayList. Sebagai contoh, jika elemen strim disimpan dalam ArrayList, kita boleh menjana pasangan yang diingini seperti berikut:
IntStream.range(1, arrayList.size()) .mapToObj(i -> new Pair(arrayList.get(i-1), arrayList.get(i))) .forEach(System.out::println);
Penyelesaian ini mempunyai had kerana ia memerlukan aliran input menjadi terhingga. Walau bagaimanapun, ia membenarkan pelaksanaan selari saluran paip.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menjana Pasangan Berturut-turut dengan Cekap daripada Strim Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!