首頁 >Java >java教程 >如何透過屬性值高效查找ArrayList中的物件?

如何透過屬性值高效查找ArrayList中的物件?

Susan Sarandon
Susan Sarandon原創
2024-12-06 20:58:13736瀏覽

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

透過屬性在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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn