Rumah > Java > javaTutorial > Bagaimanakah Saya Boleh Membandingkan Dua Senarai dengan Cekap dalam Java dan Cari Elemen Biasa dan Unik?

Bagaimanakah Saya Boleh Membandingkan Dua Senarai dengan Cekap dalam Java dan Cari Elemen Biasa dan Unik?

DDD
Lepaskan: 2024-11-28 14:17:11
asal
772 orang telah melayarinya

How Can I Efficiently Compare Two Lists in Java and Find Common and Unique Elements?

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);
    }
}
Salin selepas log masuk

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);
    }
}
Salin selepas log masuk

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!

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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan