采用java8 lambda表达式 实现 java list 交集 并集 差集 去重复并集
来源:互联网 发布:灯具品牌 知乎 编辑:程序博客网 时间:2024/06/05 18:06
采用java8 lambda表达式 实现java list 交集/并集/差集/去重并集
一般的javaList 交、并集采用简单的 removeAll retainAll 等操作,不过这也破坏了原始的javaList对象,采用java8 lambda表达式流操作则可以不影响原始list对象而得到两个javaList对象的 交、并、差集。
具体代码如下:
import static java.util.stream.Collectors.toList;import java.util.ArrayList;import java.util.List;public class Test { public static void main(String[] args) { List<String> list1 = new ArrayList(); list1.add("1111"); list1.add("2222"); list1.add("3333"); List<String> list2 = new ArrayList(); list2.add("3333"); list2.add("4444"); list2.add("5555"); // 交集 List<String> intersection = list1.stream().filter(item -> list2.contains(item)).collect(toList()); System.out.println("---得到交集 intersection---"); intersection.parallelStream().forEach(System.out :: println); // 差集 (list1 - list2) List<String> 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<String> reduce2 = list2.stream().filter(item -> !list1.contains(item)).collect(toList()); System.out.println("---得到差集 reduce2 (list2 - list1)---"); reduce2.parallelStream().forEach(System.out :: println); // 并集 List<String> listAll = list1.parallelStream().collect(toList()); List<String> listAll2 = list2.parallelStream().collect(toList()); listAll.addAll(listAll2); System.out.println("---得到并集 listAll---"); listAll.parallelStream().forEach(System.out :: println); // 去重并集 List<String> listAllDistinct = listAll.stream().distinct().collect(toList()); System.out.println("---得到去重并集 listAllDistinct---"); listAllDistinct.parallelStream().forEach(System.out :: println); System.out.println("---原来的List1---"); list1.parallelStream().forEach(System.out :: println); System.out.println("---原来的List2---"); list2.parallelStream().forEach(System.out :: println); // 一般有filter 操作时,不用并行流parallelStream ,如果用的话可能会导致线程安全问题 }}
阅读全文
0 0
- 采用java8 lambda表达式 实现 java list 交集 并集 差集 去重复并集
- Java数字的格式化&& Java list 交集、并集、差集,去重复并集
- java list 交集 并集 差集 去重复并集
- java list 交集 并集 差集 去重复并集
- java list 交集 并集 差集 去重复并集
- Java list 交集、并集、差集,去重复并集
- java list 交集 并集 差集 去重复并集
- java list 交集 并集 差集 去重复并集
- java list 交集 并集 差集 去重复并集
- java list 交集 并集 差集 去重复并集
- java 两个list 交集 并集 差集 去重复并集
- java list 交集 并集 差集 去重复并集
- Java List的并集 交集 差集 去重复并集
- java list 交集 并集 差集 去重复并集
- java list 交集 并集 差集 去重复并集
- List实现:交集,并集,差集
- JAVA List 并集, 交集, 差集
- Java求字符串数组交集 并集 差集 去重复并集
- ORA-00600:内部错误代码,[kcratr_nab_less_than_odr]故障解决
- makefile 总结
- mybatis+spring中的Mapper通过非自动注入方式获取Mapper代理对象(Spring 工厂)
- Android集成小米华为推送以及收不到离线消息的坑
- kuberntes 使用harbor最为镜像仓库配置
- 采用java8 lambda表达式 实现 java list 交集 并集 差集 去重复并集
- STL 中map用法详解
- CentOS设置系统时间与网络时间同步
- java8 集合流式操作
- Intel芯片架构中TEE的实现技术之SGX开发环境简介及搭建
- Mac下转发80端口数据到8080端口
- python学习手册4 第四章习题抄写
- 3. Longest Substring Without Repeating Characters
- 使用python进行数据的采集