一.需求

今天做的是将两个字符串转为数组后再转集合,然后利用集合的流stream来进行差集过滤

二.差集代码

差集:将两个集合相同的数据去掉,留下不同的数据

 1 @Test
2 public void wzwcs()
3 {
4 // 字符串1
5 String strOne = "123,1234";
6 // 字符串2
7 String strTow = "123,1234,12345";
8 // 已逗号分隔转为数组1
9 String[] splitOne = strOne.split(",");
10 // 已逗号分隔转为数组2
11 String[] splitTow = strTow.split(",");
12 // 将数组转为集合1
13 List<String> listOne = Arrays.asList(splitOne);
14 // 将数组转为集合2
15 List<String> listTow = Arrays.asList(splitTow);
16 // 直接写集合流将 集合2 流化,过滤(集合2的各个值->集合1.非包含(集合2的各个值)).转为set集合
17 Set <String> result = listTow.stream().filter(e->!listOne.contains(e)).collect(Collectors.toSet());
18 // 遍历差集
19 for (String s : result)
20 {
21 // 打印
22 System.out.println("result.toString() = " + s);
23 }
24 }

三.交集代码

交集:将相同的代码留下

交集代码其实就非包含变为包含

 1 @Test
2 public void wzwcs()
3 {
4 // 字符串1
5 String strOne = "123,1234";
6 // 字符串2
7 String strTow = "123,1234,12345";
8 // 已逗号分隔转为数组1
9 String[] splitOne = strOne.split(",");
10 // 已逗号分隔转为数组2
11 String[] splitTow = strTow.split(",");
12 // 将数组转为集合1
13 List<String> listOne = Arrays.asList(splitOne);
14 // 将数组转为集合2
15 List<String> listTow = Arrays.asList(splitTow);
16 // 直接写集合流将 集合2 流化,过滤(集合2的各个值->集合1.包含(集合2的各个值)).转为set集合
17 Set <String> result = listTow.stream().filter(e->listOne.contains(e)).collect(Collectors.toSet());
18 // 遍历交集
19 for (String s : result)
20 {
21 // 打印
22 System.out.println("result.toString() = " + s);
23 }
24 }

四. 规范之“用流中的Stream.Of(arr1,arr2)将两个集合合并”

集合流之"交集(相同)和差集(区别的)"的使用的更多相关文章

  1. 集合运算—union(并集)、intersect(交集)和except(差集)

    一.集合运算的基本格式是: 集合查询1 <集合运算> 集合查询2 [order by ...] 二.集合运算符是对两个集合操作的,两个集合必须具有相同的列数,列具有相同的数据类型(至少能隐 ...

  2. List集合中的交集 并集和差集

    目录 List集合求交集 并集 差集 Set集合 Lambda表达式 List集合求交集 并集 差集 两种方法求集 Set集合 交集 两个集合中有相同的元素 抽取出来的数据就是为交集 @Test pu ...

  3. Redis的高可用详解:Redis哨兵、复制、集群的设计原理,以及区别

    谈到Redis服务器的高可用,如何保证备份的机器是原始服务器的完整备份呢?这时候就需要哨兵和复制. 哨兵(Sentinel):可以管理多个Redis服务器,它提供了监控,提醒以及自动的故障转移的功能. ...

  4. Redis哨兵、复制、集群的设计原理,以及区别

    广西SEO:谈到Redis服务器的高可用,如何保证备份的机器是原始服务器的完整备份呢?这时候就需要哨兵和复制. **哨兵(Sentinel):**可以管理多个Redis服务器,它提供了监控,提醒以及自 ...

  5. 【MSP是什么】MSP认证之项目集与项目群的关系和区别

    项目群和项目集都是一个意思,翻译时没有统一口径造成的.只要能与项目组合区别开就可以了. 项目集与项目群的区别,不在于那些项目自身,而在于管理者的思想,管理者对待项目的态度.项目集与项目群,首先都是多个 ...

  6. 说说单节点集群里安装hive、3\5节点集群里安装hive的诡异区别

    这几天,无意之间,被这件事情给迷惑,不解!先暂时贴于此,以后再解决! 详细问题如下: 在hive的安装目录下(我这里是 /home/hadoop/app/hive-1.2.1),hive的安装目录的l ...

  7. SQLServer------聚集索引和非聚集索引的区别

    转载: http://www.cnblogs.com/flashicp/archive/2007/05/08/739245.html 建立非聚集索引(vid不是主键) create index idx ...

  8. JAVA8新特性--集合流操作Stream

    原文链接:https://blog.csdn.net/bluuusea/article/details/79967039 Stream类全路径为:java.util.stream.Stream 对St ...

  9. List集合流处理类型小结

    本文为博主原创,未经允许不得转载 对应实体类 import lombok.Getter; import lombok.Setter; @Getter @Setter public class Stud ...

随机推荐

  1. Shell、命令行界面、控制台什么区别

    Shell 是什么?Shell 是一个命令解释器,它为用户提供了一个向 操作系统内核发送请求以便运行程序界面系统级程序,它的作用就是遵循一定的语法将输入的命令加以解释并传给系统,他大意是指对系统的操控 ...

  2. Nhibernate Batch update returned unexpected row count from update; actual row count: 0 解决方案

    以前在session.Update(object).没发现啥问题,最近update的时候,老是报错:Nhibernate Batch update returned unexpected row co ...

  3. Qt:QByteArray

    0.说明 QByteArray是存储二进制byte数组. 区别于QString:QByteArray中存储的全是byte,而QString中存储的全是16 bit Unicode码.QString是在 ...

  4. RGBA()函数详解

    RGBA()函数详解 RGBA()函数用于设定颜色和颜色的透明度:

  5. LeetCode-075-颜色分类

    颜色分类 题目描述:给定一个包含红色.白色和蓝色,一共 n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色.白色.蓝色顺序排列. 此题中,我们使用整数 0. 1 和 2 分别表示 ...

  6. java几种数据的默认扩容机制

    当底层实现涉及到扩容时,容器或重新分配一段更大的连续内存(如果是离散分配则不需要重新分配,离散分配都是插入新元素时动态分配内存),要将容器原来的数据全部复制到新的内存上, 这无疑使效率大大降低.加载因 ...

  7. MySQL启动报错Failed to open log (file 'D:\phpStudy\PHPTutorial\MySQL\data\mysql_bin.000045', errno 2)

    MySQL报错 191105 9:39:07 [Note] Plugin 'FEDERATED' is disabled. 191105 9:39:07 InnoDB: The InnoDB memo ...

  8. nginx: [error] open() "/usr/local/nginx/logs/nginx.pid" failed (2: No such file or directory)

    问题场景 服务器重启后,重启nginx时报错nginx: [error] open() "/usr/local/nginx/logs/nginx.pid" failed (2: N ...

  9. BSOJ7526口胡

    直觉告诉我一般情况下,询问古怪的题都是分块,但是这一类题不太一样. 思考一个奇怪的暴力,每次询问的时候询问 \(f(1,k),f(2,k+1),f(3,k+2),...f(n-k+1,n)\),然后加 ...

  10. vue路由传参丢失问题

    vue路由传递参数如果用params传递参数,那么页面刷新就会丢失数据,可以改用query来传递参数,这样刷新就不会丢失