兩個 List 集合獲取公共部分、差集
阿新 • • 發佈:2021-12-01
一、程式碼
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); } }
二、測試