Membandingkan Dua Senarai dalam Java
Anda mempunyai dua set data yang ingin anda bandingkan untuk menentukan bilangan elemen yang mereka kongsi. Dengan mengandaikan ini bukan objek Java List, pertimbangkan pendekatan berikut:
Menggunakan ArrayList
Menggunakan ArrayList, anda boleh menggunakan kaedah retainAll. Kaedah ini hanya mengekalkan elemen dalam senarai pertama yang juga terdapat dalam senarai kedua. Contohnya:
import java.util.Collection; import java.util.ArrayList; import java.util.Arrays; public class ListComparison { public static void main(String[] args) { Collection<String> listOne = new ArrayList<>(Arrays.asList("milan", "dingo", "elpha", "hafil", "meat", "iga", "neeta.peeta")); Collection<String> listTwo = new ArrayList<>(Arrays.asList("hafil", "iga", "binga", "mike", "dingo")); listOne.retainAll(listTwo); System.out.println(listOne); } }
Kod ini akan mencetak senarai elemen biasa antara listOne dan listTwo.
Menggunakan HashSet
Jika anda mahu untuk memasukkan nilai berulang (iaitu, elemen yang muncul beberapa kali dalam mana-mana senarai), anda boleh menggunakan HashSet dan bukannya ArrayList. HashSet tidak membenarkan pendua, jadi selepas perbandingan, anda boleh menggunakan kaedah removeAll untuk mengalih keluar elemen biasa daripada set gabungan elemen dalam kedua-dua senarai. Ini akan memberi anda senarai elemen bukan lazim yang unik:
import java.util.Collection; import java.util.HashSet; import java.util.Arrays; public class ListComparison { public static void main(String[] args) { Collection<String> listOne = Arrays.asList("milan", "iga", "dingo", "iga", "elpha", "iga", "hafil", "iga", "meat", "iga", "neeta.peeta", "iga"); Collection<String> listTwo = Arrays.asList("hafil", "iga", "binga", "mike", "dingo", "dingo", "dingo"); Collection<String> similar = new HashSet<>(listOne); Collection<String> different = new HashSet<>(); different.addAll(listOne); different.addAll(listTwo); similar.retainAll(listTwo); different.removeAll(similar); System.out.printf("One:%s%nTwo:%s%nSimilar:%s%nDifferent:%s%n", listOne, listTwo, similar, different); } }
Kod yang diubah suai ini akan mengeluarkan elemen yang serupa dan berbeza antara kedua-dua senarai.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Membandingkan Dua Senarai dengan Cekap dalam Java dan Cari Elemen Biasa dan Unik?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!