文章目录

  • 1. 使用 LinkedHashSet
  • 2. java8语法

1. 使用 LinkedHashSet

 public static void main(String[] args){List<Integer> list1 = new ArrayList<Integer>();list1.add(1);list1.add(2);list1.add(3);list1.add(4);List<Integer> list2 = new ArrayList<Integer>();list2.add(1);list2.add(4);list2.add(7);list2.add(10);List<Integer> listAll = new ArrayList<Integer>();listAll.addAll(list1);listAll.addAll(list2);listAll = new ArrayList<Integer>(new LinkedHashSet<>(listAll));System.out.println(listAll);}

注意在使用listAll.addAll(list1)new LinkedHashSet<>(listAll)中的入参不能为null,否则会报空指针异常

2. java8语法

package Basic.list;import java.util.Arrays;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;public class Java8Test {public static void main(String[] args) {// 老师集合List<Teacher> teachers = Arrays.asList(new Teacher(1L, "张三"),new Teacher(2L, "李四"),new Teacher(3L, "王五"),new Teacher(4L, "赵六"));// 学生集合List<Student> students = Arrays.asList(new Student(5L, "张三"),new Student(6L, "李四"),new Student(7L, "小红"),new Student(8L, "小明"));// 求同时出现在老师集合和学生集合中的人数,name相同即视为同一个人int size = teachers.stream().map(t ->students.stream().filter(s -> Objects.nonNull(t.getName())&& Objects.nonNull(s.getName())&& Objects.equals(t.getName(), s.getName())).findAny().orElse(null)).filter(Objects::nonNull).collect(Collectors.toList()).size();// 求同时出现在老师集合和学生集合中人的name集合,name相同即视为同一个人List<String> names = teachers.stream().map(t ->students.stream().filter(s -> Objects.nonNull(t.getName())&& Objects.nonNull(s.getName())&& Objects.equals(t.getName(), s.getName())).findAny().orElse(null)).filter(Objects::nonNull).map(r -> r.getName()).collect(Collectors.toList());System.out.println("相同的人数:" + size);System.out.println("相同的人姓名集合:" + names);}
}class Student{long id;String name;public Student(long id, String name) {this.id = id;this.name = name;}public long getId() {return id;}public void setId(long id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}
}
class Teacher{long id;String name;public Teacher(long id, String name) {this.id = id;this.name = name;}public long getId() {return id;}public void setId(long id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}
}

打印结果:

java找出两个List集合的重复项相关推荐

  1. 找出两个List集合重复的元素

    前几天,有个同事问我说怎么找出两个List集合中重复的元素,我当时就说一个集合在外面循环,一个集合在内循环,如果两个元素相等了,就找出来了,我回来一想还是不对,要是数据非常多,这样循环下去,服务器会卡 ...

  2. java找出两个字符串中所有共同的子串_【Java笔记】

    Leetcode 1.两数之和 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标. 你可以假设每种输入只会对应一个答案.但是, ...

  3. Excel 中如何找出两列数据中不重复的记录

    现在有两列数据,要在 A 列中找出 B 列中没有的记录,在 B 列中找出 A 列中没有的记录.现在和大家分享一下这个方法. 我们先用一个简单的例子看一下.现在有两列数据,可以是分别在不同的数据单(sh ...

  4. Java找出字符串中第一个不重复的字符

    indexOf() 方法有以下四种形式: public int indexOf(int ch): 返回指定字符在字符串中第一次出现处的索引,如果此字符串中没有这样的字符,则返回 -1. public ...

  5. java找出两个数组中不同元素_java 找出两个list中不同值

    展开全部 可以通过遍历两个string数组来实现. 代码e5a48de588b63231313335323631343130323136353331333365656633如下: package co ...

  6. java基础—找出两个字符串中最大的子串

    // 找一个字符串的最大子串public static void main(String[] args) {String s1 = "qwerabcdtyuiop";String ...

  7. 高效的找出两个List中的不同元素

    转自同名博文,未知真正出处,望作者见谅 如题:有List<String> list1和List<String> list2,两个集合各有上万个元素,怎样取出两个集合中不同的元素 ...

  8. java 4位数,java 找出4位数的所有吸血鬼数字

    java 找出4位数的所有吸血鬼数字 /** * 找出四位数所有的吸血鬼数字 * 吸血鬼数字:位数为偶数的数字可以由一对数字相乘而得,这对数字包含乘积一半的位数 * 如:1260 = 21*60 */ ...

  9. 快速找出两个字符串中所有相同的字符

    面试时看到一个试题, 编写算法, 快速找出两个字符串中所有相同的字符. 现实现如下: 1. 利用TreeSet来查找是否有相同的字符(之前是利用TreeSet来查找) 2. 利用HashSet来查找是 ...

最新文章

  1. 用bitmap实现中位数的算法
  2. Python 调用matplotlib模块绘制柱状图
  3. php获取搜索框的函数,php获取搜索引擎入站关键词的函数
  4. Android之SharedPreferences 讲解
  5. 音视频直播--技术架构
  6. java常规普氏分析法_人脸对齐:Procrustes analysis 普氏分析
  7. php asp网站本地调试,php/asp网站程序本地调试工具
  8. SQL之SQL99语法 没错就这么简单
  9. Xshell 7免费版下载及安装
  10. matlab生成39码,LaTeX技巧357:MATLAB如何直接生成latex代码?
  11. 纯css 箭头,纯CSS实现小箭头的案例
  12. 点亮LED灯及IAR调试
  13. 使用阿里云服务器搭建个人博客
  14. 必背C语言算法 C语言求自然底数e
  15. XILINX FPGA时钟资源
  16. python安装hyperlpr
  17. mingw版本下qt与HTML,QT5.10开发(2) 在Windows 10下使用MinGW编译 静态Qt 5.10 release版 详细过程...
  18. Delphi 中 FireDAC 数据库连接(多线程)
  19. Springboot接入华为云短信平台
  20. IMAGE-GUIDED NEURAL OBJECT RENDERING

热门文章

  1. project文件_移动和发出时通过UploadsReWriter读取的任意文件
  2. 两个对象的 hashCode()相同,则 equals()也一定为 true,对吗?
  3. 包含几通道数据_温度采集,无处不测!「数据采集」
  4. 理解交换机通过逆向自学习算法建立地址转发表的过程_交换机与 VLAN 到底是怎么来的...
  5. CAD编辑工具中如何设置图纸的比例
  6. MySQL 函数 —— GROUP_CONCAT
  7. 阿里云再降价 数据库产品降20%
  8. SpringMVC+Json构建基于Restful风格的应用
  9. 四种launchMode启动方式
  10. 安装GD 完美解决make error