Java Map交集 并集 差集(可直接运行)
求Map的交集、并集、差集
如果两个Map有相同的键,交集求最小值,并集求最大值。
public class HashMapTest {// 求交集private static Map<String,Integer> Intersection(Map<String,Integer> mp1, Map<String,Integer> mp2) {List<String> strRemove = new ArrayList<String>();Map<String,Integer> res = new HashMap<String,Integer>(mp1);for (String s: res.keySet()){if (!mp2.containsKey(s)) {//mp1中存在但mp2中不存在strRemove.add(s);}else{ //mp1中存在mp2中存在res.put(s,Math.min(res.get(s),mp2.get(s)));}}for (String s: strRemove) {res.remove(s);}return res;}// 求并集private static Map<String,Integer> Union(Map<String,Integer> mp1, Map<String,Integer> mp2) {Map<String,Integer> res = new HashMap<String,Integer>(mp1);for (String s: mp2.keySet()){if (mp1.containsKey(s)) {//mp2中存在 mp1中存在res.put(s,Math.max(mp1.get(s),mp2.get(s)));}else{ //mp2中存在 mp1中不存在res.put(s,mp2.get(s));}}return res;}// 求差集private static Map<String,Integer> Difference(Map<String,Integer> mp1, Map<String,Integer> mp2) {List<String> strRemove = new ArrayList<String>();Map<String,Integer> res = new HashMap<String,Integer>(mp1);for (String s: res.keySet()) {if (mp2.containsKey(s)){strRemove.add(s);}}for (String s: strRemove) {res.remove(s);}return res;}// 计数 生成两个Mapprivate static Map<String,Integer> Counter(String string){Map<String,Integer> mp = new HashMap<String,Integer>();String[] strArray = string.split("");int cnt;for (String s:strArray){cnt = mp.getOrDefault(s,0);mp.put(s,cnt+1);} return mp;}// 调用public static void main(String[] args){//求两个HashMap的交集、差集、并集 String str1 = "queue";String str2 = "upper";// 统计每个元素的出现次数Map<String,Integer> mp1 = new HashMap<String,Integer>();Map<String,Integer> mp2 = new HashMap<String,Integer>();mp1 = Counter(str1);mp2 = Counter(str2);System.out.println("mp1"+mp1);System.out.println("mp2"+mp2);// 求交集Map<String,Integer> resultIntersection = new HashMap<String,Integer>();resultIntersection = Intersection(mp1, mp2);System.out.println("交集:"+resultIntersection);//求并集Map<String,Integer> resultUnion = new HashMap<String,Integer>();resultUnion = Union(mp1, mp2);System.out.println("并集:"+resultUnion);//求差集Map<String,Integer> resultDifference = new HashMap<String,Integer>();resultDifference = Difference(mp1, mp2);System.out.println("差集mp1-mp2:"+resultDifference);}
}
Java Map交集 并集 差集(可直接运行)相关推荐
- lambda 对象去重_采用java8 lambda表达式 实现 java list 交集 并集 差集 去重复并集...
采用java8 lambda表达式 实现java list 交集/并集/差集/去重并集 一般的javaList 交.并集采用简单的 removeAll retainAll 等操作,不过这也破坏了原始的 ...
- java实现交集并集差集
java实现交集并集差集 ***`package 第一次模拟测试; import java.util.ArrayList; import java.util.HashSet; import java. ...
- 采用java8 lambda表达式 实现 java list 交集 并集 差集 去重复并集
采用java8 lambda表达式 实现java list 交集/并集/差集/去重并集 一般的javaList 交.并集采用简单的 removeAll retainAll 等操作,不过这也破坏了原始的 ...
- java list 交集 并集 差集 去重复并集
2019独角兽企业重金招聘Python工程师标准>>> //并集 list1.addAll(list2); //交集 list1.retainAll(list2); //差集 lis ...
- oracle 并集 时间_Oracle集合运算符 交集 并集 差集
集合运算符:UNION/UNION ALL 并集,INTERSECT 交集,MINUS 差集 一.union求并集,公共部分只有包含一次 例:求emp表ename中含'A'或含有'M' SQL> ...
- JAVA Hashset求集合的交集并集差集
JAVA Hashset求集合的交集并集差集 Hashset是Set接口较为常见的一个子类,该子类的最大特点是不允许保存重复的元素,并且所有的内容都采用散列(无序)的方式进行存储. package c ...
- go自定义和使用set包处理列表 交集 并集 差集
自定义交集 并集 差集 package mainimport "fmt"func main() {aList := []string{"1", "2& ...
- MySQL求交集 并集 差集
MySQL求交集 并集 差集 交集 两个表之间相同的 并集 两个表之间的总和 ps: union 自带去重 差集 两个表直接的差值
- oracle表交集并集,oracle交集,并集,差集
oracle交集,并集,差集 [sql] create table test1 ( name varchar(10), NN varchar(10) ); insert into test1 valu ...
最新文章
- linux环境变量查询设置及保存
- javascript时间格式format函数,js日期格式化函数
- ajax上传plupload的使用
- 开源软件 cadsurf 阅读笔记
- Linux下启动tomcat报java.lang.OutOfMemoryError: PermGen space
- Java多线程---线程通信(wait,notifyAll,生产者消费者经典范式,owner wait set,自定义显式锁BooleanLock)
- 九日登望仙台呈刘明府 [唐] 崔曙
- oracle设计案例,Oracle课程设计案例精编
- Intel SGX入门
- java毕业设计演唱会门票订售及管理系统Mybatis+系统+数据库+调试部署
- iphone进入安全模式及退出安全模式的方法
- 拼图软件那个好用?好用的拼图软件分享
- 科沃斯擦窗机器人向上走不动_ECOVACS 科沃斯 W830 解决高空擦玻璃的难处
- 多旋翼无人机仿真 rotors_simulator:roll pitch yawrate thrust 控制器
- django 连接oracle的坑和解决方法
- 大流量滤芯保安过滤器
- Python编辑excel里的文本框
- 2g限制 outlook_OutLook超出2G大小限制的 PST 和 OST 的解决方法-邮件备份法
- python权限设置
- 【JVM源码解析】模板解释器解释执行Java字节码指令(上)