工作中很多时候需要用到合并两个List并去除其中的重复内容。

java8之前

在java8之前比较常规的做法是将两个List添加到一个Set中,因为Set的内容不可重复,所以会自动去重,然后再由Set转为List,代码如下:

Set set = new HashSet<>(listA);set.addAll(listB);List list = new ArrayList<>(set);System.out.println(list);

或者是通过list的removeAll()去重后再用addAll()合二为一,代码如下:

listA.removeAll(listB);listA.addAll(listB);

这样做后的list就是合并并去重后的结果。

java8之后

在java8出现以后,我们有了更方便高效的做法,就是通过Stream来帮我们完成这项操作,代码如下:

List collect = Stream.of(listA, listB).flatMap(Collection::stream).distinct().collect(Collectors.toList());

这样得到的结果也是最后我们想要的结果,可以很清楚的看出通过Stream完成的代码看上去更加简洁流畅。

温馨提示:如果要合并的是对象请注意重写equals和hashcode方法。

java 合并两个List并去掉重复项相关推荐

  1. Java合并两个List并去掉重复项的几种做法

    一.前言 工作中很多时候需要用到合并两个List并去除其中的重复内容,这是一个很简单的操作,实现的方法也多种多样,请继续往下看 二.使用stream方式进行去重(需要jdk1.8及以上) String ...

  2. 合并两个List并去掉重复项

    工作中很多时候需要用到合并两个List并去除其中的重复内容.这是一个很简单的操作,这里主要是记录一下通过用Stream来完成这项操作. 在java8之前比较常规的做法是将两个List添加到一个Set中 ...

  3. 合并两个链表,去掉重复元素

    最近在学习机器学习的相关算法,写到DbScan算法发现在簇扩展时用到两个邻域中的点会重合,于是尝试了合并两个链表的两个算法. 最初用到这个方法,认为它简单易用.思路是定义一个链表存放合并后的链表lis ...

  4. JavaScript 怎么合并两个JSON,并覆盖重复键

    如何合并两个JSON,并覆盖重复键 xxx={a:{a1:"a1"},b:{b1:{b11:1,b12:2}}}; yyy={b:{b1:{b11:4,b12:5}}}; 把 xx ...

  5. java 合并两个列表_如何在Java中合并两个列表?

    java 合并两个列表 Merging two lists in Java is often a useful operation. These lists can be ArrayLists or ...

  6. java using用法_如何使用java合并两个PPT。(How to merge two PPTs using java.)

    如何使用java合并两个PPT.(How to merge two PPTs using java.) 问题描述 (Problem Description) 如何使用java合并两个PPT. 解决方案 ...

  7. 怎么在excel中对比两列数据并查找重复项

    怎么在excel中对比两列数据并查找重复项 方法一: 方法二: 方法三: Excel查找2列相同的数据,并且返回对应列的另1列数据: IF函数语法格式: 方法一: =MATCH(A1,D$1:D95, ...

  8. c语言讲两个数组合并_两列数据相互去掉重复值后合并

    大家好,今日继续讲VBA数组与字典解决方案的第27讲,内容是两列数据中相互去掉重复值之后将数据合并.这讲的内容利用到动态数组,固定数组,数组的合并,数组的转置等等. 还是先看实例,下面的工作表中A列和 ...

  9. java:合并两个排序的整数数组A和B变成一个新的数组。新数组也要有序。

    合并两个排序的整数数组A和B变成一个新的数组.新数组也要有序. 样例 1:输入: A=[1], B=[1]输出:[1,1]样例解释: 返回合并后的数组.样例 2:输入: A=[1,2,3,4], B= ...

最新文章

  1. 【转】【C#】C#重绘windows窗体标题栏和边框
  2. js在线压缩工具 支持Base62 encode 和 Shrink variables
  3. ai画面怎么调大小_怎么使用pr(adobe premiere)裁剪视频画面的大小
  4. python单例_Python单例模式
  5. Stanford 研究领域
  6. 泛函分析——有界线性算子和函数
  7. java压缩----使用ANT JDK压缩---解决中文问题
  8. 《C++ Primer 5th》笔记(5 / 19):语句
  9. Openresty Nginx 负载均衡
  10. Struts2学习(三)———— 输入校验和拦截器
  11. php 日志库,这可能是php世界中最好的日志库——monolog
  12. 小程序 获取小程序链接
  13. 8个国外开放的硕博论文、期刊、数据库下载网站-转
  14. Geant4安装步骤(最新的10.4版本)
  15. 阿里巴巴的业务范畴/文化和价值观
  16. 福岛第一核电站的辐射水平已明显下降
  17. Stratifyd入驻腾讯云市场,AI赋能品牌数字化升级
  18. 流媒体之老黄谈流媒体服务与视频网站研发
  19. 云计算运维工程师前景怎么样?
  20. 2. C++ Visual Studio中同一个项目包含多个有main函数的源文件怎么分别运行?

热门文章

  1. TP9343系列路由器TL-WR886N刷OpenWRT(明月大神编译)
  2. java 约瑟夫单循环_约瑟夫问题(Josephus问题)的递推O(n)解法、循环解法、单循环链表解法 | 学步园...
  3. 入坑就对了!如何用机器学习甄别真假美猴王?
  4. Apache Hive实战基础
  5. 网站排名SEO优化方案(2021最新)
  6. 硬实时系统的语言构造和转换----普渡大学
  7. Spring中,StringUtils的isEmpty方法已弃用
  8. 游戏人云集清华科幻季,齐呼吁打造受尊敬事业
  9. 我们都一样,不甘平凡又害怕努力
  10. 「近世代數概論」(Garrett Birkhoff,Saunders Mac Lane) 3.1.1 引理1