Rumah > Java > javaTutorial > Bagaimanakah Saya Boleh Mengulang Melalui Strim Java 8 Semasa Mengakses Indeks Unsur?

Bagaimanakah Saya Boleh Mengulang Melalui Strim Java 8 Semasa Mengakses Indeks Unsur?

Patricia Arquette
Lepaskan: 2024-12-27 14:53:10
asal
717 orang telah melayarinya

How Can I Iterate Through a Java 8 Stream While Accessing Element Indices?

Menyalurkan Strim dengan Indeks dalam Java 8: Penyelesaian Ringkas

Untuk mengulangi strim dan indeks akses dengan berkesan, beberapa pendekatan tersedia.

Menggunakan Aliran Indeks

Penyelesaian yang paling bersih ialah mencipta aliran indeks dan menapisnya berdasarkan elemen stream:

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

Pendekatan ini memastikan senarai yang terhasil hanya mengandungi elemen yang memenuhi kriteria berasaskan indeks.

Menggunakan Pembilang Integer Atomic

Alternatif lain ialah dengan mengekalkan pembilang boleh ubah dalam strim:

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

Kaedah ini menyediakan sintaks biasa yang serupa kepada untuk gelung. Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa pendekatan ini berpotensi rosak apabila digunakan pada aliran selari kerana item mungkin tidak diproses mengikut urutan.

Akhirnya, pilihan pendekatan bergantung pada keperluan khusus dan pertimbangan prestasi permohonan.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengulang Melalui Strim Java 8 Semasa Mengakses Indeks 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