Rumah > Java > javaTutorial > Bagaimanakah Saya Boleh Mengulang Dengan Cekap Melalui Strim Java 8 dan Indeks Akses?

Bagaimanakah Saya Boleh Mengulang Dengan Cekap Melalui Strim Java 8 dan Indeks Akses?

Susan Sarandon
Lepaskan: 2024-12-27 12:10:10
asal
925 orang telah melayarinya

How Can I Efficiently Iterate Through a Java 8 Stream and Access Indices?

Lelaran Strim yang Cekap dengan Indeks dalam Java 8

Pengenalan

Mengakses indeks semasa mengulang strim dalam Java 8 boleh tugas yang membosankan, terutamanya jika dibandingkan dengan rakan LINQnya. Artikel ini meneroka cara ringkas dan cekap untuk mencapai kefungsian ini.

Penyelesaian Perantaraan

Satu pendekatan ialah menggabungkan aliran indeks dengan aliran elemen, menggunakan kaedah zip. Walau bagaimanapun, kaedah ini telah sama ada dialihkan atau dialih keluar, menjadikan pendekatan ini kurang boleh diakses.

Cara Paling Bersih: Daripada Indeks

Penyelesaian yang lebih diperkemas adalah bermula dengan aliran indeks. Ini boleh dicapai menggunakan IntStream.range() dan menyediakan titik permulaan yang mudah untuk operasi penapisan dan pemetaan:

String[] names = {"Sam", "Pamela", "Dave", "Pascal", "Erik"};
IntStream.range(0, names.length)
         .filter(i -> names[i].length() <= i)
         .mapToObj(i -> names[i])
         .collect(Collectors.toList());
Salin selepas log masuk

Menggunakan Indeks Boleh Ubah

Alternatif lain ialah untuk mengekalkan kaunter ad hoc menggunakan objek boleh ubah seperti AtomicInteger. Pendekatan ini menyerupai tradisional untuk gelung:

String[] names = {"Sam", "Pamela", "Dave", "Pascal", "Erik"};
AtomicInteger index = new AtomicInteger();
List<String> list = Arrays.stream(names)
                          .filter(n -> n.length() <= index.incrementAndGet())
                          .collect(Collectors.toList());
Salin selepas log masuk

Awas untuk Aliran Selari

Adalah penting untuk ambil perhatian bahawa menggunakan kaedah terakhir ini pada aliran selari boleh memperkenalkan isu, kerana item mungkin tidak diproses mengikut urutan.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengulang Dengan Cekap Melalui Strim Java 8 dan Indeks Akses?. 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