簡體   English   中英

根據java中的內部對象列表值從對象列表中刪除元素

[英]Remove a element from List of objects based on inner object list value in java

如果某些內部列表屬性值不滿足條件,如何從列表中刪除元素。這里的技巧是該屬性本身是一個列表,比較基於該內部列表的某些屬性。 請參考以下示例並幫助填寫代碼中的注釋部分:

目的 :

Class product{
 private String productId;
 private String productName;
 private List<Attribute> attributeList;

    public static class Attribute{
        private Long attributeId;
    }
}

驅動程序類:

Class Driver{
   List<product> productList = new ArrayList<product>();
   /*
   Remove the object from productList if attributeList doesn't contain attribute with attributeId = x;
*/
}

你可以做什么來流過原始列表,只留下滿足條件的對象。 它可能看起來像這樣:

List<Product> filtered = productList.stream()
      .filter( p -> p.attributeList().stream().anyMatch( a -> a.attributeId.equals(x))
      .collect(Collectors.toList()) 

在本次直播中,我們實際上是在檢查嵌套列表是否包含至少一個具有attributeId = x對象p.attributeList().stream().anyMatch( a -> a.attributeId.equals(x)

您可以執行 foreach 循環並刪除不需要的元素。 在“product”類中,您可以插入“FindInnerAtribute”函數以在屬性列表中搜索,如果有則返回true。

List<product> productList = new ArrayList<product>();
for(product p : productList){
    if ( p.FindInnerAttribute(x) ){
        productList.remove(p);
    }
}

如何從列表中刪除

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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