Rumah > Java > javaTutorial > Bagaimana untuk Cekap Mencari Objek dalam ArrayList mengikut Nilai Harta?

Bagaimana untuk Cekap Mencari Objek dalam ArrayList mengikut Nilai Harta?

Susan Sarandon
Lepaskan: 2024-12-06 20:58:13
asal
737 orang telah melayarinya

How to Efficiently Find an Object in an ArrayList by Property Value?

Mencari Objek dalam ArrayList mengikut Harta

Memandangkan ArrayList yang mengandungi objek kelas Carnet, bagaimana kita boleh mendapatkan semula objek tertentu berdasarkan pada nilai harta tertentu, seperti codeIsin?

Penyelesaian (Java 8 Stream):

Dalam Java 8, kami boleh memanfaatkan aliran untuk melaksanakan operasi ini dengan ringkas:

public static Carnet findByCodeIsIn(Collection<Carnet> listCarnet, String codeIsIn) {
    return listCarnet.stream().filter(carnet -> codeIsIn.equals(carnet.getCodeIsin())).findFirst().orElse(null);
}
Salin selepas log masuk

Pendekatan Kelas Utiliti (Pilihan):

Jika kita perlukan untuk melakukan carian sedemikian merentas banyak kelas yang berbeza atau untuk sifat yang berbeza-beza, kita boleh merangkum logik ini dalam kelas utiliti:

public final class FindUtils {
    public static <T> T findByProperty(Collection<T> col, Predicate<T> filter) {
        return col.stream().filter(filter).findFirst().orElse(null);
    }
}

public final class CarnetUtils {
    public static Carnet findByCodeTitre(Collection<Carnet> listCarnet, String codeTitre) {
        return FindUtils.findByProperty(listCarnet, carnet -> codeTitre.equals(carnet.getCodeTitre()));
    }

    // Similar methods for other properties (e.g., findByNomTitre, findByCodeIsIn)
}
Salin selepas log masuk

Pendekatan ini menyediakan penyelesaian yang lebih boleh digunakan semula dan membolehkan pengubahsuaian mudah bagi kriteria carian.

Atas ialah kandungan terperinci Bagaimana untuk Cekap Mencari Objek dalam ArrayList mengikut Nilai Harta?. 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan