[转]list的交集,差集,并集
原文地址:https://www.cnblogs.com/changfanchangle/p/8966860.html
工作中用到了list的取差集,发现还是挺好用的。
所以记录下。
| 需求 | list的方法 | 说明 | 备注 |
|---|---|---|---|
| 交集 | listA.retainAll(listB) | listA内容变为listA和listB都存在的对象 | listB不变 |
| 差集 | listA.removeAll(listB) | listA中存在的listB的内容去重 | listB不变 |
| 并集 | listA.removeAll(listB) listA.addAll(listB) |
为了去重,listA先取差集,然后追加全部的listB | listB不变 |
测试代码:
// 交集
List<String> listA_01 = new ArrayList<String>(){{
add("A");
add("B");
}};
List<String> listB_01 = new ArrayList<String>(){{
add("B");
add("C");
}};
listA_01.retainAll(listB_01);
System.out.println(listA_01); // 结果:[B]
System.out.println(listB_01); // 结果:[B, C]
// 差集
List<String> listA_02 = new ArrayList<String>(){{
add("A");
add("B");
}};
List<String> listB_02 = new ArrayList<String>(){{
add("B");
add("C");
}};
listA_02.removeAll(listB_02);
System.out.println(listA_02); // 结果:[A]
System.out.println(listB_02); // 结果:[B, C]
// 并集
List<String> listA_03 = new ArrayList<String>(){{
add("A");
add("B");
}};
List<String> listB_03 = new ArrayList<String>(){{
add("B");
add("C");
}};
listA_03.removeAll(listB_03);
listA_03.addAll(listB_03);
System.out.println(listA_03); // 结果:[A, B, C]
System.out.println(listB_03); // 结果:[B, C]
[转]list的交集,差集,并集的更多相关文章
- python-->(set /dict)交集 差集 并集 补集(功能用来做交差并补的)
# ### 集合 作用:交集 差集 并集 补集(功能用来做交差并补的) '''特征:自动去重 无序''' #定义一个空集合 setvar = set() #set()强制转换成一个空集合的数据类型 p ...
- C# 集合的交集 差集 并集 去重
C# 集合的交集 差集 并集 去重 两个对象list,直接比较是不行的,因为他们存的地址不一样 需要重写GetHashCode()与Equals(object obj)方法告诉电脑 class Stu ...
- js取两个数组的交集|差集|并集|补集|去重示例代码
http://www.jb51.net/article/40385.htm 代码如下: /** * each是一个集合迭代函数,它接受一个函数作为参数和一组可选的参数 * 这个迭代函数依次将集合的每一 ...
- C# 数组比较--取得两个集合的交集,差集,并集的方法
方法关键字: 交集:Intersect 差集:Except 并集:Union 使用代码: , , , , }; , , , , }; var 交集 = arr1.Intersect(arr2).ToL ...
- javascript 数组求交集/差集/并集/过滤重复
最近在小一个小程序项目,突然发现 javscript 对数组支持不是很好,连这些基本的功能,都还要自己封装.网上查了下,再结合自己的想法,封装了一下,代码如下. //数组交集 Array.protot ...
- java 交集 差集 并集
package com.wish.datastrustudy; import java.util.HashSet; import java.util.LinkedList; import java.u ...
- C# 交集 差集 并集
Intersect 交集,Except 差集,Union 并集 , , , , }; , , , , , }; var jiaoJi = oldArray.Intersect(newArray).To ...
- sqlite支持各种交集差集 并集操作了
- .NET的求复杂类型集合的差集、交集、并集
前言 如标题所述,在ASP.NET应用程序开发中,两个集合做比较时 我们使用微软IEnumerable封装的 Except/Intersect/Union 取 差集/交集/并集 方法是非常的方便的: ...
随机推荐
- angular笔记_4(函数)
angular.isString();是否字符串 angular.isNumber();是否数字 angular.isArray();是否数组 angular.isDate();是否日期/时间 ang ...
- KO的使用例子
var model; function QueuingRecordViewModel() { model = this; // model = this 不可缺少 model.info = ko.ob ...
- Codeforces.1028F.Make Symmetrical(结论 暴力)
题目链接 \(Description\) \(q\)次操作,每次给定点的坐标\((x,y)\),表示加入一个点\((x,y)\),或删除一个点\((x,y)\),或询问:至少需要在平面中加入多少个点, ...
- BZOJ.3351.[IOI2009]Regions(根号分治 差分)
BZOJ 表示非常爽2333 \(Description\) 给定一棵\(n\)个点的树,每个点有一个属性\(1\leq r_i\leq R\). \(Q\)次询问,每次询问给定\(r1,r2\),求 ...
- Shell脚本笔记(九)数组
数组 一)定义 #最常用:小括号加空格: a=( ) #键值对形式: b=([]=x []=men []=z) #定义变量的形式 c[]=; c[]=; c[]= #命令结果作为数组元素 d=($(c ...
- [AMPPZ2014]Jaskinia
[AMPPZ2014]Jaskinia 题目大意: 一个\(n(n\le3\times10^5)\)的树,\(m(m\le3\times10^5)\)个约束条件\((a_i,b_i,d_i)\).请你 ...
- 从零开始搭建一个从Win7环境备份至CentOS7的SVN双机备份环境
★几个关键的事项★ 需要关闭防火墙filewalld跟selinux ,在root用户下操作: [root@localhost svnRepos]# systemctl stop firewalld ...
- incomplete type is not allowed ofstream
错误: incomplete type is not allowed 解决方案: #include<fstream>
- aix 查看内存,CPU 配置信息
内存lsattr -El mem0cpu lsdev -C |grep procCPU的信息lsattr -El proc0 #bootinfo -r查看物理内存 使用命令# lsdev ...
- C#保存文件为无BOM的utf8格式
如图所示,发现用C#的 File.WriteAllLines 方法,无论怎么设置,最终生成的文件都是 PC utf8,也就是CRLF,用SVN进行提交的时候,显示左侧为utf8,右侧为utf8 BOM ...