【发布时间】:2020-06-02 19:06:28
【问题描述】:
如果某些内部列表属性值不满足条件,我如何从列表中删除元素。这里的技巧是属性本身就是一个列表,并且比较基于该内部列表的某些属性。请参考以下示例并帮助填写代码中的注释部分:
对象:
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;
*/
}
【问题讨论】:
-
productList.removeIf(p -> p.getAttributeList().stream().map(Attribute::getAttributeId) .noneMatch(Predicate.isEqual(x)));
标签: java arraylist collections java-8 remove-if