Rumah > Java > javaTutorial > Bagaimanakah Saya Boleh Membandingkan Dua Senarai di Java dengan Cekap untuk Mencari Kedua-dua Elemen Biasa dan Berbeza?

Bagaimanakah Saya Boleh Membandingkan Dua Senarai di Java dengan Cekap untuk Mencari Kedua-dua Elemen Biasa dan Berbeza?

DDD
Lepaskan: 2024-12-01 01:09:15
asal
597 orang telah melayarinya

How Can I Efficiently Compare Two Lists in Java to Find Both Common and Different Elements?

Membandingkan Dua Senarai dalam Java

Di Java, membandingkan dua senarai boleh dicapai melalui pelbagai kaedah dan struktur data. Artikel ini meneroka beberapa pendekatan untuk membandingkan senarai, memfokuskan pada mencari elemen yang serupa dan berbeza.

Kaedah ArrayList dan retainAll

Menggunakan ArrayList dan kaedah retainAll membolehkan anda untuk hanya mengekalkan unsur-unsur yang terkandung dalam kedua-duanya senarai.

import java.util.Collection;
import java.util.ArrayList;

public class ListComparison {
    public static void main(String[] args) {
        Collection<String> list1 = new ArrayList<>(Arrays.asList("milan", "dingo", "elpha", "hafil", "meat", "iga", "neeta.peeta"));
        Collection<String> list2 = new ArrayList<>(Arrays.asList("hafil", "iga", "binga", "mike", "dingo"));

        list1.retainAll(list2);
        System.out.println("Common elements: " + list1);
    }
}
Salin selepas log masuk

Kaedah HashSet dan removeAll

Jika anda perlu mencari bukan sahaja elemen biasa tetapi juga unsur yang berbeza, menggunakan HashSet dan kaedah removeAll ialah pendekatan yang sesuai. HashSet tidak membenarkan pendua, jadi ia boleh menghapuskan nilai berulang.

import java.util.Collection;
import java.util.HashSet;

public class ListComparison2 {
    public static void main(String[] args) {
        Collection<String> list1 = Arrays.asList("milan", "iga", "dingo", "iga", "elpha", "iga", "hafil", "iga", "meat", "iga", "neeta.peeta", "iga");
        Collection<String> list2 = Arrays.asList("hafil", "iga", "binga", "mike", "dingo", "dingo", "dingo");

        Collection<String> common = new HashSet<>(list1);
        Collection<String> different = new HashSet<>();
        different.addAll(list1);
        different.addAll(list2);

        common.retainAll(list2);
        different.removeAll(common);

        System.out.printf("Common elements: %s%nDifferent elements: %s%n", common, different);
    }
}
Salin selepas log masuk

Pendekatan Tersuai

Sebagai alternatif, anda boleh mencipta kaedah tersuai untuk membandingkan senarai dan kembalikan unsur biasa dan berbeza. Ini memberikan lebih banyak fleksibiliti dan pilihan penyesuaian.

public class CustomListComparison {
    public static void main(String[] args) {
        List<String> list1 = Arrays.asList("milan", "dingo", "elpha", "hafil", "meat", "iga", "neeta.peeta");
        List<String> list2 = Arrays.asList("hafil", "iga", "binga", "mike", "dingo");

        List<String> common = new ArrayList<>();
        List<String> different = new ArrayList<>();

        for (String element : list1) {
            if (list2.contains(element)) {
                common.add(element);
            } else {
                different.add(element);
            }
        }

        for (String element : list2) {
            if (!list1.contains(element)) {
                different.add(element);
            }
        }

        System.out.printf("Common elements: %s%nDifferent elements: %s%n", common, different);
    }
}
Salin selepas log masuk

Dengan memanfaatkan teknik ini, anda boleh membandingkan dua senarai dengan cekap dalam Java, mengenal pasti kedua-dua elemen biasa dan berbeza

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Membandingkan Dua Senarai di Java dengan Cekap untuk Mencari Kedua-dua Elemen Biasa dan Berbeza?. 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