【发布时间】:2022-10-01 09:09:31
【问题描述】:
我有清单一和清单二与一堆对象。我想从中删除项目清单一已经存在的清单二,但匹配必须仅基于ID,整个对象不必相同。如果 id 匹配,则必须从 listOne 中删除所述对象。请问我们如何使用 Java 流来实现这一点。
-
listOne.removeIf(o1 -> listTwo.stream().anyMatch(o2 -> o2.id == o1.id)); -
或者如果 list2 很长,
Set<IdType> idSet2 = list2.stream().map(i -> i.id).collect(toSet()); list1.removeIf(i -> idSet2.contains(i));。
标签: java