采用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 list1 = new ArrayList();

list1.add("1111");

list1.add("2222");

list1.add("3333");

List list2 = new ArrayList();

list2.add("3333");

list2.add("4444");

list2.add("5555");

// 交集

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().forEach(System.out :: println);

// 去重并集

List 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 ,如果用的话可能会导致线程安全问题

}

}

lambda 对象去重_采用java8 lambda表达式 实现 java list 交集 并集 差集 去重复并集...相关推荐

  1. 采用java8 lambda表达式 实现 java list 交集 并集 差集 去重复并集

    采用java8 lambda表达式 实现java list 交集/并集/差集/去重并集 一般的javaList 交.并集采用简单的 removeAll retainAll 等操作,不过这也破坏了原始的 ...

  2. lambda 对象去重_最火的java8新特性:Lambda 表达式

    主要内容 1. Lambda 表达式 2. 函数式接口 3. 方法引用与构造器引用 4. Stream API 5. 其他新特性 Java 8新特性简介 速度更快 代码更少(增加了新的语法 Lambd ...

  3. Java Stream 流常用方法 lambda 表达式实现交集、并集、差集、去重复并集等

    一般的javaList 交.并集采用简单的 removeAll retainAll 等操作,不过这也破坏了原始的javaList对象,采用java8 lambda表达式流操作则可以不影响原始list对 ...

  4. python数据框去重_【Python】基于某些列删除数据框中的重复值

    Python按照某些列去重,可用drop_duplicates函数轻松处理.本文致力用简洁的语言介绍该函数. 一.drop_duplicates函数介绍 drop_duplicates函数可以按某列去 ...

  5. java8 lambda maplist排序_「java8系列」流式编程Stream

    前言 「Java8系列」神秘的Lambda 「Java8系列」神奇的函数式接口 继上两篇之后,本文已经java8系列的第三篇了.本篇文章比较长,但我希望大家都能认真读完.读不完可以先收藏,在找时间读. ...

  6. lambda 对象去重_lambda去重

    lambda去重使用collectingAndThen方法 list 对象中,如果根据Object的单个属性进行过滤去重, 则: List userList = users.stream() .col ...

  7. python 去重_上来就情感分析?我还是先用python去去重吧!

    大家好 下面我给大家讲讲:为什么用python情感分析之前应该先去重! 1.原理说明 1)为什么要进行数据的句内去重? 在做情感分析的时候,有时候需要对文本进行分词,做词频统计.上图是某个店铺的留言数 ...

  8. 数据去重复_字典应用实例(每行每列都要去重复值)

    我的目标:让中国的大学生走出校门的那一刻就已经具备这些office技能,让职场人士能高效使用office为其服务.支持我,也为自己加油! 前面两节课中的去重复,不论是单张表里的去重复还是多张表里的去重 ...

  9. set列表对象去重_java中List对象列表去重或取出以及排序

    面试碰到几次list的去重和排序.下面介绍一种做法: 1. list去重 1.1 实体类Student List容量10k以上,要求去重复.这里Student的重复标准是属性相同,因此需要重写equa ...

最新文章

  1. CoreAnimation编程指南(六)动画 转自:http://www.dreamingwish.com/
  2. 【Scratch】青少年蓝桥杯_每日一题_4.01_踢足球
  3. java quartz 跳过_Java Quartz计划作业-禁止同时执行作业
  4. 计算机统考测试,计算机统考专业测试题.doc
  5. JAVA入门级教学之(JAVA注释)
  6. figma应用——面向用户的咖啡点单APP的设计过程记录
  7. SpringMVC 单文件上传与多文件上传
  8. mysql longtext 查询_mysql,_mysql中longtext存在大量数据时,会导致查询很慢?,mysql - phpStudy...
  9. [转]c++中RTTI的观念和使用
  10. 7-39 龟兔赛跑 (20 分) 乌龟与兔子进行赛跑,跑场是一个矩型跑道,跑道边可以随地进行休息。T分钟后乌龟和兔子谁跑得快?PTA:中M2021春C、Java入门练习第I段—变量、表达式、分支、循环
  11. 计算机如何解锁 磁盘,怎么解除Dell电脑硬盘的bitlocker加密
  12. 历经300多年难得的那一刹那: 日全食
  13. Java多用户商城源码/单商户商城系统源码
  14. Google与k8s
  15. 什么是数据不平衡问题,应该如何解决
  16. 小白普及:云主机与传统服务器的区别
  17. 51单片机之DS18B20温度传感器实验
  18. java留言板_java实现留言板功能实例
  19. 【青梅快讯】Greenplum 最新版本6.20.3已正式发布
  20. [转]中国最大的Webshell后门箱子调查,所有公开大马全军覆没

热门文章

  1. 又是安卓玩剩下的功能!下代iPhone或可同时连两副耳机
  2. 深圳惊现“马云网络有限公司” 网友:你好 我是马云公司CEO
  3. 回调函数(CALLBACK)学习总结
  4. java平台无关性_为什么Java能够实现平台无关性?
  5. 再探正则表达式c++-html中搜索url
  6. ie和谷歌在java中空格兼容,谷歌和IE浏览器的兼容性问题,相同的html结构竟然在两个浏览器不一样...
  7. macosx 不允许无名信号量_个人对S12X的协处理器XGATE的信号量semaphore的理解
  8. centos6和centos7防火墙的关闭
  9. iap php,PHP语言之华为应用内支付IAP验签
  10. 【Flink】未解决 FLink 写 hive MemoryManager New Memory allocation smaller than the minimum allocation size