[英]How to get a list of objects with same objects property from an ArrayList by
如何使用 object 屬性檢索 ArrayList 中所有對象的列表。
Model Class:
public class Item {
private String id;
private String name;
}
ArrayList<Item> items = new ArrayList();
現在,我們如何使用特定名稱搜索 ArrayList?
例如:獲取所有名稱為“Sam”的對象。
你可以做:
List<Item> itemsNamedSam = items.stream()
.filter(item -> item.name.equals("Sam"))
.collect(Collectors.toList())
幾點注意事項:
Item
中的字段設為private
。 例如,就目前情況而言,您可能會意外更改name
字段。List<Item>
(接口),而不是ArrayList<Item>
(實現)。您可以使用 removeIf 方法從列表中刪除所有沒有“Sam”名稱的元素:
itemsNamedSam.removeIf(item -> !item.name.equals("Sam"));
在@Alex 的評論的幫助下,我最終做的是:
public static List<Item> findItemsByName(Collection<Item> listItems, String name) {
return listItems.stream().filter(item -> name.equals(item.getName()))
.collect(Collectors.toList());
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.