一、代码
public class LambdaDemo {
public static void main(String[] args) {
List<User> list1 = Arrays.asList(
new User(1, "mao", 22),
new User(2, "xiaomao", 23),
new User(3, "xiaomaomao", 24),
new User(4, "xiaoxiaomaomao", 25)
);
List<User> list2 = Arrays.asList(
new User(1, "mao", 22),
new User(2, "xiaomao", 23),
new User(3, "xiaomaomao", 24)
);
// 两个集合的重复部分
List<User> duplicateList = list1.stream().filter((item) -> list2.stream().map((item2) -> item2.getId()).collect(Collectors.toList()).contains(item.getId())).collect(Collectors.toList());
// 两个集合的差集 (list1-list2)
List<User> differentList = list1.stream().filter((item) -> !list2.stream().map((item2) -> item2.getId()).collect(Collectors.toList()).contains(item.getId())).collect(Collectors.toList());
System.out.println("重复的元素为: " + duplicateList);
System.out.println("两个集合的差集为: " + differentList);
}
}
二、测试