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); }
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) }
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!