Rumah > Java > javaTutorial > Bagaimana untuk Mendapatkan Objek dengan Cekap dari ArrayLists Berdasarkan Sifat Tertentu?

Bagaimana untuk Mendapatkan Objek dengan Cekap dari ArrayLists Berdasarkan Sifat Tertentu?

Patricia Arquette
Lepaskan: 2024-12-04 02:13:09
asal
192 orang telah melayarinya

How to Efficiently Retrieve Objects from ArrayLists Based on Specific Properties?

Mendapatkan semula Objek daripada ArrayLists Berdasarkan Sifat

Dalam pengaturcaraan berorientasikan objek, anda sering menghadapi senario di mana anda perlu mencari objek dengan harta tertentu di tengah-tengah koleksi. Ini amat berguna dalam rangka kerja seperti Java EE, di mana anda mungkin bekerja dengan POJO dan perlu mendapatkan semula objek daripada cache dalam memori.

Pertimbangkan senario di mana anda menguruskan senarai objek Carnet, setiap satunya mempunyai sifat seperti codeTitre, nomTitre, dan codeIsin. Katakan anda perlu mencari objek Carnet tertentu berdasarkan kodIsinnya. Untuk mencapai matlamat ini, anda boleh memanfaatkan kuasa strim Java:

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

Coretan kod ini menggunakan strim untuk mencari dengan cekap melalui koleksi objek Carnet, menapis objek yang tidak sepadan dengan kriteria codeIsIn yang diberikan. Dengan memanfaatkan kaedah findFirst(), anda mendapatkan semula objek padanan pertama, atau batal jika tiada objek ditemui.

Anda juga mungkin menghadapi situasi di mana anda perlu mencari objek dengan sifat berbeza atau merentas pelbagai jenis objek. Untuk menangani perkara ini, anda boleh memperkenalkan kelas utiliti seperti FindUtils:

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

Kelas utiliti ini menyediakan kaedah generik yang boleh digunakan untuk mencari objek berdasarkan mana-mana kriteria yang ditentukan.

Tambahan pula , anda boleh mencipta kelas utiliti khusus untuk setiap jenis objek, seperti CarnetUtils:

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 finding by other properties
}
Salin selepas log masuk

Dengan menggunakan kelas utiliti ini, anda boleh mencari objek dengan mudah dan fleksibel dalam ArrayLists anda, tanpa mengira sifat khusus mereka.

Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Objek dengan Cekap dari ArrayLists Berdasarkan Sifat Tertentu?. 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