Rumah >Java >javaTutorial >Bagaimana untuk Cekap Mencari Objek Carnet dalam ArrayList dengan CodeIsin Property?

Bagaimana untuk Cekap Mencari Objek Carnet dalam ArrayList dengan CodeIsin Property?

Barbara Streisand
Barbara Streisandasal
2024-12-19 13:07:10918semak imbas

How to Efficiently Find a Carnet Object in an ArrayList by its codeIsin Property?

Mendapatkan semula Objek daripada ArrayList Berdasarkan Nilai Harta

Tugas di tangan adalah untuk mencari objek tertentu, iaitu contoh Carnet, dalam sebuah ArrayList koleksi dengan memanfaatkan sifat codeIsinnya yang unik.

Pendekatan Java 8 Streams

Java 8 memperkenalkan strim, yang menyediakan cara yang ringkas dan cekap untuk bekerja dengan pengumpulan data. Untuk mencari objek yang diingini:

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

Kaedah ini memanfaatkan stream() untuk melintasi senarai dan penapis() untuk memilih hanya objek dengan nilai codeIsin yang sepadan. findFirst() mendapatkan semula elemen padanan pertama dan orElse() mengembalikan null jika tiada padanan ditemui.

Pendekatan Kelas Utiliti Generik

Untuk senario di mana pelbagai jenis objek ( bukan hanya Carnet) atau berbilang sifat carian (bukan hanya codeIsin) terlibat, pertimbangkan untuk mencipta kelas utiliti untuk merangkum carian logik:

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()));
    }
    // Additional methods for other search criteria
}

Pendekatan ini memusatkan logik carian dan membolehkan penggunaan semula mudah merentas jenis objek dan sifat carian yang berbeza.

Atas ialah kandungan terperinci Bagaimana untuk Cekap Mencari Objek Carnet dalam ArrayList dengan CodeIsin Property?. 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