Java 社区交流群
添加微信 372787553 备注进群
在Java 以前也许您需要很多的代码才是实现 集合的**去重,交集,差集,并集,判断两个集合是否相等(与顺序无关)**但是这要求在java 8 您只需要一行代码就可以搞定,示例如下:
List<String> list1 = Stream.of("S0337", "S0ZOM", "S0ZP1").collect(Collectors.toList());
List<String> list2 = Stream.of("S0337", "S0ZOM", "S0ZP1", "S0ZPL","S0337").collect(Collectors.toList());
//去重
List<String> distinct = list2.stream().distinct().collect(Collectors.toList());
System.out.println("去重后结果:"+distinct);
//交集
List<String> intersection = list1.stream().filter(list2::contains)
.collect(Collectors.toList());
System.out.println("交集结果:"+intersection);
//差集
// list1 差集 list2
List<String> differenceSet = list1.stream().filter(num -> !list2.contains(num))
.collect(Collectors.toList());
System.out.println("list1 差集 list2结果:"+differenceSet);
// list1 差集 list2
List<String> differenceSet2 = list2.stream().filter(num -> !list1.contains(num))
.collect(Collectors.toList());
System.out.println("list2 差集 list1结果:"+differenceSet2);
//并集 这里未进行去重,如需要去重请结合以上去重的代码
list1.addAll(list2);
System.out.println("并集结果:"+list1);
List<String> list3 = Stream.of("S0337", "S0ZOM", "S0ZP1").collect(Collectors.toList());
List<String> list4 = Stream.of( "S0ZOM", "S0ZP1","S0337").collect(Collectors.toList());
//是否相同
long count = list3.stream().filter(list4::contains).count();
boolean flag = list3.size() == count && list3.size() == list4.size();
System.out.println("是否相同:"+flag);
输出结果为:
去重后结果:[S0337, S0ZOM, S0ZP1, S0ZPL]
交集结果:[S0337, S0ZOM, S0ZP1]
list1 差集 list2结果:[]
list2 差集 list1结果:[S0ZPL]
并集结果:[S0337, S0ZOM, S0ZP1, S0337, S0ZOM, S0ZP1, S0ZPL, S0337]
是否相同:true
本文的分享暂时就到这里,希望对您有所帮助
- Java 进阶学习笔记https://github.com/yanghaiji/Advanced-books
- SpringCloud 自定义封装架构https://github.com/yanghaiji/javayh-platform
- Java 设计模式学习代码 https://github.com/yanghaiji/design-pattern
- SpringCloud学习代码: https://github.com/yanghaiji/javayh-cloud
- AlibabaCloud学习代码:https://github.com/yanghaiji/javayh-cloud-nacos
- SpringBoot+Mybatis 多数据源切换:https://github.com/yanghaiji/javayh-boot-data-soure
- Redis、Mongo、Rabbitmq、Kafka学习代码: https://github.com/yanghaiji/javayh-middleware
- SpringBoot+SpringSecurity实现自定义登录学习代码:https://github.com/yanghaiji/javayh-distribution
关注 Java有货领取更多资料
联系小编。微信:372787553,带您进群互相学习
左侧小编微信,右侧获取免费资料