2个list取交集_角的集合如何取交集

2个list取交集_角的集合如何取交集两个 List 集合取交集 并集 差集 去重并集的一个简单 Demo 可供参考 import java util ArrayList import java util List import static java util stream Collectors toList public class Test public static void main String

两个List集合取交集、并集、差集、去重并集的一个简单Demo,可供参考:

import java.util.ArrayList;
import java.util.List;
import static java.util.stream.Collectors.toList;
public class Test {

public static void main(String[] args) {

List list1 = new ArrayList();
list1.add("1");
list1.add("2");
list1.add("3");
list1.add("5");
list1.add("6");
List list2 = new ArrayList();
list2.add("2");
list2.add("3");
list2.add("7");
list2.add("8");
// 交集
List intersection = list1.stream().filter(item -> list2.contains(item)).collect(toList());
System.out.println("---交集 intersection---");
intersection.parallelStream().forEach(System.out :: println);
// 差集 (list1 - list2)
List reduce1 = list1.stream().filter(item -> !list2.contains(item)).collect(toList());
System.out.println("---差集 reduce1 (list1 - list2)---");
reduce1.parallelStream().forEach(System.out :: println);
// 差集 (list2 - list1)
List reduce2 = list2.stream().filter(item -> !list1.contains(item)).collect(toList());
System.out.println("---差集 reduce2 (list2 - list1)---");
reduce2.parallelStream().forEach(System.out :: println);
// 并集
List listAll = list1.parallelStream().collect(toList());
List listAll2 = list2.parallelStream().collect(toList());
listAll.addAll(listAll2);
System.out.println("---并集 listAll---");
listAll.parallelStream().forEachOrdered(System.out :: println);
// 去重并集
List listAllDistinct = listAll.stream().distinct().collect(toList());
System.out.println("---得到去重并集 listAllDistinct---");
listAllDistinct.parallelStream().forEachOrdered(System.out :: println);
System.out.println("---原来的List1---");
list1.parallelStream().forEachOrdered(System.out :: println);
System.out.println("---原来的List2---");
list2.parallelStream().forEachOrdered(System.out :: println);
}
}
private static  Predicate distinctByKey(Function keyExtractor) { 

Map seen = new ConcurrentHashMap<>();
return t -> seen.putIfAbsent(keyExtractor.apply(t), Boolean.TRUE) == null;
}
public static void main(String[] args) {

List list=new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);
list.add(4);
List list2=new ArrayList<>();
list.add(1);
list.add(6);
list.add(6);
list.add(7);
list.addAll(list2);
list = list.stream().filter(distinctByKey(Integer::intValue)).collect(Collectors.toList());
System.out.println(list);
}

编程小号
上一篇 2025-04-14 14:06
下一篇 2025-04-04 15:17

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/hz/114634.html