簡體   English   中英

如何從 ArrayList 獲取具有相同對象屬性的對象列表

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM