Rumah >Java >javaTutorial >Bagaimanakah Saya Boleh Membandingkan Dua Senarai dengan Cekap di Java untuk Mencari Elemen Dikongsi dan Unik?

Bagaimanakah Saya Boleh Membandingkan Dua Senarai dengan Cekap di Java untuk Mencari Elemen Dikongsi dan Unik?

Linda Hamilton
Linda Hamiltonasal
2024-12-03 01:05:13596semak imbas

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

Java Compare Two List

Membandingkan dua senarai untuk menentukan bilangan elemen yang dikongsi dan mengenal pasti kedua-dua item yang serupa dan berbeza boleh dicapai menggunakan Koleksi Java.

Untuk menentukan elemen yang dikongsi dengan cekap, pertimbangkan untuk menggunakan kaedah retainAll, yang mengubah suai senarai pertama untuk mengandungi sahaja unsur-unsur yang terdapat dalam kedua-dua senarai. Contohnya, diberikan dua senarai "milan" dan "hafil", operasi retainAll akan mengubah suai satu senarai untuk mengandungi hanya "milan".

Untuk mendapatkan kedua-dua elemen yang serupa dan berbeza, anda boleh menggunakan Set. Kaedah removeAll boleh digunakan untuk mengecualikan sebarang elemen daripada Set yang tidak dikongsi antara senarai. Set yang terhasil akan mengandungi elemen yang serupa, manakala elemen yang berbeza boleh diperoleh dengan mengira gabungan kedua-dua senarai dan seterusnya mengecualikan elemen yang serupa.

Berikut ialah coretan kod sampel menggunakan Set sebagai perbandingan:

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

class Repeated {
    public static void main(String[] args) {
        Collection<String> listOne = Arrays.asList("milan", "iga", "dingo", "elpha", "hafil", "meat", "neeta.peeta");
        Collection<String> listTwo = Arrays.asList("hafil", "iga", "binga", "mike", "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);
    }
}

Output:

One:[milan, iga, dingo, elpha, hafil, meat, neeta.peeta]
Two:[hafil, iga, binga, mike, dingo]
Similar:[dingo, iga, hafil]
Different:[mike, binga, milan, meat, elpha, neeta.peeta]

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Membandingkan Dua Senarai dengan Cekap di Java untuk Mencari Elemen Dikongsi dan Unik?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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