透過屬性在ArrayList 中尋找物件
給定一個包含Carnet 類別物件的ArrayList,我們如何有效地檢索基於屬性的特定物件關於特定屬性的值,例如codeIsin?
解決方案(Java 8 Streams):
在Java 8 中,我們可以利用流來簡潔地執行此操作:
public static Carnet findByCodeIsIn(Collection<Carnet> listCarnet, String codeIsIn) { return listCarnet.stream().filter(carnet -> codeIsIn.equals(carnet.getCodeIsin())).findFirst().orElse(null); }
實用類別方法(可選):
如果我們需要跨許多不同的類別或不同的屬性執行此類查找,我們可以將此邏輯封裝在實用程式類別中:
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) }
這種方法提供了更可重複使用的解決方案,並允許輕鬆修改搜尋條件。
以上是如何透過屬性值高效查找ArrayList中的物件?的詳細內容。更多資訊請關注PHP中文網其他相關文章!