Rumah >Java >javaTutorial >Bagaimanakah Saya Boleh Mencari Persimpangan dan Kesatuan ArrayLists dengan Cekap di Jawa?

Bagaimanakah Saya Boleh Mencari Persimpangan dan Kesatuan ArrayLists dengan Cekap di Jawa?

DDD
DDDasal
2024-12-23 04:27:10275semak imbas

How Can I Efficiently Find the Intersection and Union of ArrayLists in Java?

Mencari Persimpangan dan Kesatuan ArrayLists di Java

Dalam bekerja dengan ArrayLists, selalunya perlu mencari persimpangan atau gabungan dua atau lebih banyak senarai. Ini boleh berguna untuk tugas seperti menapis fail atau menggabungkan data daripada pelbagai sumber.

Kaedah Persimpangan dan Kesatuan

Java menyediakan beberapa kaedah untuk melaksanakan persilangan dan kesatuan pada ArrayLists:

  • retainAll(Collection c): Mengekalkan hanya elemen dalam senarai ini yang terkandung dalam koleksi yang ditentukan.
  • removeAll(Collection c): Mengalih keluar semua elemen dalam ini senarai yang terkandung dalam koleksi yang ditentukan.
  • addAll(Collection c): Menambah semua elemen dalam koleksi yang ditentukan pada senarai ini.

Kaedah ini mengubah suai ArrayLists asal, yang mungkin tidak diingini dalam semua kes. Sebagai alternatif, anda boleh melaksanakan kaedah anda sendiri untuk mengendalikan persimpangan dan kesatuan tanpa mengubah suai senarai asal:

public static <T> List<T> intersection(List<T> list1, List<T> list2) {
    List<T> list = new ArrayList<>();

    for (T t : list1) {
        if (list2.contains(t)) {
            list.add(t);
        }
    }

    return list;
}

public static <T> List<T> union(List<T> list1, List<T> list2) {
    Set<T> set = new HashSet<>();

    set.addAll(list1);
    set.addAll(list2);

    return new ArrayList<>(set);
}

Struktur Data Alternatif

ArrayList ialah struktur data boleh ubah yang membolehkan elemen pendua. Untuk operasi set, anda boleh mempertimbangkan untuk menggunakan struktur data yang berbeza:

  • Set: Set secara automatik menjamin bahawa elemen adalah unik. Walau bagaimanapun, ia tidak mengekalkan susunan elemen.
  • SortedSet: Set yang diisih mengekalkan elemen dalam susunan yang boleh diisih, yang mungkin berguna untuk sesetengah aplikasi.

Dengan memilih struktur data yang sesuai untuk tugas anda, anda boleh mengoptimumkan masa jalan dan penggunaan memori kod anda.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mencari Persimpangan dan Kesatuan ArrayLists dengan Cekap di Jawa?. 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