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);
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);
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();
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!