Rumah > Java > javaTutorial > Bagaimanakah Saya Boleh Mencari Elemen Biasa Antara Pelbagai Senarai di Java dengan Cekap?

Bagaimanakah Saya Boleh Mencari Elemen Biasa Antara Pelbagai Senarai di Java dengan Cekap?

Mary-Kate Olsen
Lepaskan: 2024-12-02 03:31:09
asal
176 orang telah melayarinya

How Can I Efficiently Find Common Elements Between Multiple Lists in Java?

Menentukan Elemen Lazim daripada Pelbagai Senarai

Di Java, anda mungkin menghadapi keperluan untuk mencari elemen biasa yang dikongsi oleh berbilang senarai. Ini boleh menjadi operasi yang berguna untuk tugas seperti membandingkan set data atau mengenal pasti persimpangan. Artikel ini meneroka pendekatan yang cekap untuk mendapatkan semula elemen biasa antara dua senarai menggunakan rangka kerja koleksi Java.

Untuk bermula, pertimbangkan senario di mana anda mempunyai dua objek ArrayList, setiap satu mengandungi tiga integer. Matlamat anda adalah untuk mencari dan mengembalikan elemen yang terdapat dalam kedua-dua senarai.

Penyelesaian: Collection#retainAll()

Salah satu cara paling mudah untuk mencapai matlamat ini adalah dengan menggunakan kaedah Collection#retainAll(). Kaedah ini mengubah suai koleksi pemanggilan dengan mengalih keluar semua elemen yang tidak turut terdapat dalam parameter koleksi yang ditentukan.

listA.retainAll(listB);
Salin selepas log masuk

Selepas melaksanakan kod di atas, listA akan mengandungi hanya elemen yang biasa kepada kedua-dua listA dan listB .

Pendekatan Alternatif: Mencipta yang Baharu Koleksi

Jika anda perlu mengekalkan kandungan asal listA, anda boleh mencipta koleksi baharu yang mengandungi elemen biasa:

List<Integer> common = new ArrayList<>(listA);
common.retainAll(listB);
Salin selepas log masuk

Dalam kes ini, senarai biasa akan mengandungi hanya elemen yang wujud dalam kedua-dua listA dan listB, manakala kandungan asal listA kekal utuh.

Berasaskan Strim Penyelesaian

Java 8 memperkenalkan API aliran berkuasa yang menyediakan cara deklaratif memproses dan memanipulasi koleksi. Anda boleh memanfaatkan kaedah stream#filter() untuk menapis elemen berdasarkan predikat tertentu:

List<Integer> common = listA.stream().filter(listB::contains).toList();
Salin selepas log masuk

Pendekatan berasaskan strim ini melaksanakan operasi penapis pada setiap elemen dalam listA, menyemak sama ada ia wujud dalam listB menggunakan kaedah mengandungi(). Senarai yang terhasil hanya akan mengandungi unsur biasa antara listA dan listB.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mencari Elemen Biasa Antara Pelbagai Senarai di Java dengan Cekap?. 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