Rumah > Java > javaTutorial > Bagaimana untuk Mencipta Pasangan Berturut-turut dengan Cekap daripada Strim Data di Java?

Bagaimana untuk Mencipta Pasangan Berturut-turut dengan Cekap daripada Strim Data di Java?

Barbara Streisand
Lepaskan: 2024-11-30 06:45:15
asal
378 orang telah melayarinya

How to Efficiently Create Successive Pairs from a Data Stream in Java?

Membina Pasangan Berturut-turut dengan Cekap daripada Strim

Memandangkan aliran nilai primitif atau objek, tugas timbul untuk mengubahnya menjadi aliran pasangan, di mana setiap pasangan terdiri dua elemen berturut-turut daripada aliran asal. Sebagai contoh, memandangkan strim {0, 1, 2, 3, 4}, output yang dikehendaki ialah:

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

Analisis

Strim Java 8 perpustakaan cemerlang dalam membahagikan aliran kepada bahagian yang lebih kecil untuk pemprosesan selari. Walau bagaimanapun, ia menawarkan sokongan terhad untuk peringkat saluran paip stateful, menjadikannya mencabar untuk mengakses elemen aliran bersebelahan dan mendapatkan indeks elemen semasa.

Penyelesaian

Untuk mengatasinya pengehadan, kami boleh memanfaatkan pendekatan diindeks di mana kami memacu strim menggunakan indeks. Ini memerlukan nilai untuk disimpan dalam struktur data capaian rawak seperti ArrayList, dari mana elemen boleh diambil dengan mudah. Dengan nilai dalam ArrayList, kita boleh membina pasangan seperti berikut:

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

Perhatikan bahawa pendekatan ini mempunyai kekangan yang memerlukan input menjadi aliran terhingga. Walau bagaimanapun, saluran paip boleh dilaksanakan secara selari.

Atas ialah kandungan terperinci Bagaimana untuk Mencipta Pasangan Berturut-turut dengan Cekap daripada Strim Data di Java?. 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