如何根據特定屬性有效率地從ArrayList中檢索物件?
根據屬性從ArrayList中擷取物件
在物件導向程式設計中,常常會遇到需要透過屬性來定位物件的場景集合中的特定屬性。這在 Java EE 等框架中特別有用,您可能在其中使用 POJO 並需要從記憶體快取中檢索物件。
考慮一個場景,其中您正在管理 Carnet 物件列表,每個都擁有 codeTitre、nomTitre 和 codeIsin 等屬性。假設您需要根據其 codeIsin 來尋找特定的 Carnet 物件。為了實現這一點,您可以利用 Java 流的強大功能:
public static Carnet findByCodeIsIn(Collection<Carnet> listCarnet, String codeIsIn) { return listCarnet.stream().filter(carnet -> codeIsIn.equals(carnet.getCodeIsin())).findFirst().orElse(null); }
此程式碼片段利用流來有效地搜尋 Carnet 物件集合,過濾掉那些與給定 codeIsIn 條件不匹配的物件。透過利用 findFirst() 方法,您可以檢索第一個匹配的對象,如果沒有找到對象,則傳回 null。
您也可能會遇到需要尋找具有不同屬性或跨多種類型物件的物件的情況。為了解決這個問題,您可以引入像 FindUtils 這樣的實用程式類別:
public final class FindUtils { public static <T> T findByProperty(Collection<T> col, Predicate<T> filter) { return col.stream().filter(filter).findFirst().orElse(null); } }
這個實用程式類別提供了一個通用方法,可用於根據任何指定的條件搜尋物件。
此外,您可以為每種物件類型建立特定的實用程式類,例如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 }
透過使用這些實用程式類,您可以輕鬆靈活地搜尋ArrayList 中的對象,無論其具體屬性為何。
以上是如何根據特定屬性有效率地從ArrayList中檢索物件?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

公司安全軟件導致部分應用無法正常運行的排查與解決方法許多公司為了保障內部網絡安全,會部署安全軟件。 ...

將姓名轉換為數字以實現排序的解決方案在許多應用場景中,用戶可能需要在群組中進行排序,尤其是在一個用...

在使用MyBatis-Plus或其他ORM框架進行數據庫操作時,經常需要根據實體類的屬性名構造查詢條件。如果每次都手動...

系統對接中的字段映射處理在進行系統對接時,常常會遇到一個棘手的問題:如何將A系統的接口字段有效地映�...

在使用IntelliJIDEAUltimate版本啟動Spring...

Java對象與數組的轉換:深入探討強制類型轉換的風險與正確方法很多Java初學者會遇到將一個對象轉換成數組的�...

電商平台SKU和SPU表設計詳解本文將探討電商平台中SKU和SPU的數據庫設計問題,特別是如何處理用戶自定義銷售屬...

Redis緩存方案如何實現產品排行榜列表的需求?在開發過程中,我們常常需要處理排行榜的需求,例如展示一個�...
