Map的合并操作

【Java】多个List<Map>集合合并成一个List<Map> Java中多个List集合合并成一个List 阅读详情

两个Map的合并操作

两个map进行合并有多种方式实现,以下列举出几种常见的合并方式:

方式1:使用map的merge()方法进行合并

public class MergeTwoMaps {
    public static void main(String[] args) {
        Map<Integer,Integer> map1 = new HashMap<>();
        map1.put(1,1);
        map1.put(2,2);
        map1.put(3,3);
        map1.put(4,4);

        Map<Integer,Integer> map2 = new HashMap<>();
        map2.put(1,0);
        map2.put(5,5);
        map2.put(6,6);

        //进行map的合并操作
        //方式1:使用map的merge()方法进行合并
        HashMap<Integer, Integer> map = new HashMap<>(map1);
        /*
        * merge(param1,param2,param3) : 第一个参数为要合并的key,第二个参数为要合并的value,第三个参数接收两个参数的函数,用来处理重复的
        * key值出现的处理逻辑,(v1,v2) -> v1)表示使用map1的value值,(v1,v2) -> v2)表示使用map2的value值
        * */
        map2.forEach((key,value) -> map.merge(key,value,(v1,v2) -> v1));
        map.forEach((key,value) -> System.out.println(key + ": " + value));
    }
}

输出结果:

1: 1
2: 2
3: 3
4: 4
5: 5
6: 6

方式2: 使用Stream.concat进行合并

public class MergeTwoMaps2 {
    public static void main(String[] args) {
        Map<Integer,Integer> map1 = new HashMap<>();
        map1.put(1,1);
        map1.put(2,2);
        map1.put(3,3);
        map1.put(4,4);

        Map<Integer,Integer> map2 = new HashMap<>();
        map2.put(1,0);
        map2.put(5,5);
        map2.put(6,6);

        //将map1和map2收集成一个流
        Stream<Map.Entry<Integer, Integer>> concat = Stream.concat(map1.entrySet().stream(), map2.entrySet().stream());
        //然后将其收集成一个新的map
        Map<Integer, Integer> map = concat.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, (v1, v2) -> v2));
        map.forEach((key,value) -> {
            System.out.println(key + ": " + value);
        });
    }
}

输出结果:

1: 0
2: 2
3: 3
4: 4
5: 5
6: 6

方式3:使用Stream.of进行合并

public class MergeTwoMaps3 {
    public static void main(String[] args) {
        Map<Integer,Integer> map1 = new HashMap<>();
        map1.put(1,1);
        map1.put(2,2);
        map1.put(3,3);
        map1.put(4,4);

        Map<Integer,Integer> map2 = new HashMap<>();
        map2.put(1,0);
        map2.put(5,5);
        map2.put(6,6);

        //注意: 和contact不同的是stream.of可以初始化多个元素,然后用扁平化的处理成需要的流,然后用收集器来转为Map
        Stream<Map<Integer, Integer>> stream = Stream.of(map1, map2);
        Map<Integer, Integer> map = stream.flatMap(m -> m.entrySet().stream())
                .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, (v1, v2) -> v1));
        map.forEach((key,value) -> {
            System.out.println(key + ": " + value);
        });
    }
}

输出结果:

1: 1
2: 2
3: 3
4: 4
5: 5
6: 6

方式4:直接使用Steam的Collector进行收集合并

public class MergeTwoMaps4 {
    public static void main(String[] args) {
        Map<Integer,Integer> map1 = new HashMap<>();
        map1.put(1,1);
        map1.put(2,2);
        map1.put(3,3);
        map1.put(4,4);

        Map<Integer,Integer> map2 = new HashMap<>();
        map2.put(1,0);
        map2.put(5,5);
        map2.put(6,6);

        //方式4:直接使用Collector进行收集
        HashMap<Integer, Integer> map = map2.entrySet().stream()
                .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, (v1, v2) -> v2, () -> new HashMap<>(map1)));
        map.forEach((key,value) -> {
            System.out.println(key + ": " + value);
        });
    }
}

输出结果:

1: 0
2: 2
3: 3
4: 4
5: 5
6: 6
3Dmax 2017实战:如何把多个模型的UV和贴图合并到一张(附完整操作步骤) 本文详细介绍了在3Dmax 2017中如何将多个模型的UV和贴图合并到一张的完整操作步骤。通过理解UV展开与贴图合并的核心概念,掌握模型合并、UV通道设置、贴图烘焙等关键技术,帮助3D设计师简化场景管理、降低内存占用并确保纹理统一。特别适合需要处理复杂场景UV布局的专业人士参考。 阅读详情

相关推荐

scala 两个map合并,key相同时value相加

转载请务必注明原创地址为:http://dongkelun.com/2018/04/01/scalaMapAdd/ 1、先看一下map自带的合并操作的效果 val map1 = Map(&amp;quot;key1&amp;quot; -&amp;amp;gt; 1, &amp;quot;key2&amp;quot; -&amp;amp;gt; 3, &amp;quot;key3&amp;quot; -&amp;amp;gt;

主要分享大数据相关的知识,如Spark、Hudi 1万+

两个Map对象合并成一个Map对象

两个Map对象合并成一个Map对象 两个map合并所用函数为:putAll() 代码如下所示,展示了两个 map 对象的合并,如果是多个 map 合并也是用这种方式。 import java.util.HashMap; import java.util.Map; public class Test06 { public static void main(String[] args) { Map<String,Object> map1=new HashMap<Str

m0_67402588的博客 8632

Mac上Office合法安装与激活全指南:2021/2024/M365区别解析

Office是微软办公套件的核心产品,其在macOS平台的部署逻辑与Windows截然不同——不依赖传统密钥激活,而是基于Microsoft账户与设备标识的云端绑定机制。理解这一原理,是解决‘无法验证开发者’‘打不开’‘功能受限’等常见问题的前提。Office 2021代表永久许可模型,Office 2024 LTSC面向企业离线场景,Microsoft 365则是持续订阅服务,三者在授权验证方式、更新策略与系统兼容性上存在本质差异。实际应用中,需结合macOS版本、芯片架构(Intel/Apple Sil

weixin_33491377的博客 1233

Java中,合并两个Map

在Java中,合并两个Map可以使用putAll()方法,但是默认情况下,如果被合并的Map中有null值,它们会被丢弃。这里将两个Map合并成一个新的Map,如果被合并的Map中的value有null,会被保留在新的Map中。输出结果中,被合并的Map中的value为null的键值对被保留了下来。

zzzb123456的博客 5833

论文、报告中那些乱七八糟的图(甘特图、卡吉图,桑基图,小提琴图,弦图,螺旋图,风玫瑰图)

在一些论文或报告中,总是会看到一些熟悉的图,但作者总是不能好好说话,非得搞个洋名字、缩写字或者半洋半中的词来显示它多么高大上,有时候这种故弄玄虚、华而不实的写法也实在是让人看了不伦不类,图首先是让读者更容易看懂的,不是让你来故作高深、玩玄学的。

David_jiang 9427

如何搭建一个vue项目(完整步骤)

查看版本的两种方式 出现版本号则说明安装成功(最新的以官网为准) 这里注意:安装vue-cli对node.js的版本是有要求的 装的两种方式:输入cmd命令 查看安装的版本(显示版本号说明安装成功) 如果你原来有版本或者版本比较低,可以升级...

m0_67392661的博客 5585

两个Map的合并操作

merge(param1,param2,param3) : 第一个参数为要合并的key,第二个参数为要合并的value,第三个参数接收两个参数的函数,用来处理重复的 key值出现的处理逻辑,(v1,v2) -> v1)表示使用map1的value值,(v1,v2) -> v2)表示使用map2的value值。如果remapping函数的计算结果为null,将解除此结果。map2的结果是map2和map的lambda结果集,而map则还是原来的map。

运气只是当机会来临时,你已为它准备好。 2万+

泛微E9统一待办接口说明

需要第三方表单,在提交自己的流程后,通过【window.location.href=‘oa地址/workflow/request/ViewRequestOS.jsp?需要第三方表单,在提交自己的流程后,通过【window.location.href=‘oa地址/workflow/workflow/WfRefreshList.jsp’】通过中转页面与第三方系统对接,按照第三系统的验证方式开发中转页面中的程序。C)第三方根据相同的数据加密,结果一致就认证成功,打开流程。优点:可以灵活的对接各个系统。

泛微二次开发后端知识总结 6396

java stream map分组_java8 Stream对List<Map>的分组合并操作

public classGamer47 {public static voidmain(String[] args) {//将List变成一个mapmergeListmapToOnemap(null);//将两个List合并成一个List,“name”为map的keymergeTwoListmapToOneListmap(null,null,"name");//对List分组统计summaryGr...

weixin_34656543的博客 4294

Unity开发HoloLens应用:从打包到部署的完整指南

本文为Unity开发者提供了将应用部署到HoloLens设备的完整实战指南。详细讲解了从环境准备、Unity项目配置、生成Visual Studio工程,到最终构建APPX安装包并通过设备门户或Visual Studio进行部署的全流程,帮助开发者高效完成混合现实应用的打包与安装。

red88的博客 1018

OpenSceneGraph编译、安装、开发环境

详细描述WIndows 10下使用Visual Studio 2019编译OpenSceneGraph 3.6.5的操作流程

国产CAx(CAD/CAE/CAM)软件研发 8771

Java map合并操作

Map<String, List<CustomerQuotation>> collect1 = customerQuotationList.stream().filter(c -> c.getApprovalId() != null).collect(Collectors.groupingBy(CustomerQuotation::getApprovalId));//根据报价单配置表id分组 Map<String, List<C...

一切都会好起来的,即使不在今天 369

MATLAB安装

Matlab 2016a 安装包及破解教程百度云分享链接: 链接:https://pan.baidu.com/s/1i6BgD8p       密码:17gg   Matlab安装教程: 1、下载文件,得到R2016a_win64.part1.rar、R2016a_win64.part2.rar两部分安装文件和Matlab 2016a Win64 Crack破解文件。 2、解压安装文件(解...

qq_36734094的博客 17万+

两个map的value 进行合并-Map的merge操作

public static void main(String[] args) { HashMap<String, List<Long>> failedMapSingle = Maps.newHashMap(); HashMap<String, List<Long>> failedMap = Maps.newHashMap(); failedMap.put("a", Lists.newArrayList(...

阅微草堂 1655

XXL-Job 分布式定时任务

XXL-JOB是一款轻量级分布式定时任务调度框架,采用调度中心与执行器分离架构,解决单机任务宕机、重复执行等问题。核心模块包括调度中心(管理任务配置、触发调度)和执行器(执行任务逻辑),支持集群部署保证高可用。框架提供丰富的任务触发规则、路由策略、阻塞策略及完善的运维能力,适用于多种业务场景如数据同步、定时推送等。安装时需准备MySQL数据库并初始化表结构,通过Docker部署调度中心服务。相比其他定时框架,XXL-JOB具有轻量化、可视化等优势,是中小企业的首选方案。

郭宝的博客 699

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

java8合并相同map_jdk1.8 操作List<Map> 多个map 具有相同的key 进行分组合并重组数据...

一:我们有这么一列数据: 数据格式m1的数据格式如下: margeKey 是 要按照 那个key来进行分组,key 名字[{active_user=2, company_id=13}, {active_user=1, company_id=126}, {company_id=13, material_num=13}, {company_id=126, material_num=2}, {comp...

weixin_42525189的博客 3146

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

java list merge_通过集合工具类CollectionUtils实现合并数组、属性至集合或Map集、指定类型查找等相关操作...

一、前言这边通过定义CollectionUtils集合工具类,实现对数组转序列arrayToList、合并数组为集合mergeArrayIntoCollection、合并属性为Map的方法mergePropertiesIntoMap、集合类型查询findValueOfType等操作。二、代码示例importjava.util.Arrays;@b@importjava.util.Collecti...

weixin_39957318的博客 1308

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

java8 List<Map> 操作 以某个key合并两个List<Map>

public static List<HashMap<String, Object>> merge(ArrayList<HashMap<String, Object>> list1,ArrayList<HashMap<String, Object>> list2,String key) { //List<HashMap<String, Object>> list1 = new Arra...

liuerchong的博客 2721

ES6数组操作:forEach、map、filter、find、every、some、reduce、concat(合并)详细用法

目录 ES6数组操作:forEach、map、filter、find、every、some、reduce详细用法 1、forEach 2、map 3、filter 4、find 5、every 6、some 7、reduce ES6数组操作:forEach、map、filter、find、every、some、reduce详细用法 1、forEach 作用:循环遍历 numbers=[1,2,3,4,5] numbers.forEach(number => { .

happy81997的博客 1460

scala 两个map合并

简单合并 val map1 = Map("key1" -&gt; 1, "key2" -&gt; 3, "key3" -&gt; 5) val map2 = Map("key2" -&gt; 4, "key3" -&gt; 6, "key5" -&gt; 10) println(map1 + ("key1" -&amp

Tybyqi的博客 1295

list中Map合并重复数据(map中key相等的value值相加)

public static void main(String[] args) { List<Map<String, Object>> list = new ArrayList<Map<String, Object>>(); Map<String, Object> map1 = new HashMap<String, Obje...

w567wzf的博客 4961

Java_集合操作_合并两个map

package test; import java.util.LinkedHashMap; import java.util.Map; public class test { public static void main(String[] args) { Map map = new LinkedHashMap(); Map map2 = new LinkedHashMap();

1260

java map 多个key_jdk1.8 操作List<Map> 多个map 具有相同的key 进行分组合并重组数据...

一:我们有这么一列数据:数据格式m1的数据格式如下: margeKey 是 要按照 那个key来进行分组,key 名字[{active_user=2, company_id=13}, {active_user=1, company_id=126}, {company_id=13, material_num=13}, {company_id=126, material_num=2}, {compa...

weixin_39640773的博客 2505

Unity使用PS合并贴图

使用PBR渲染,金属工作流时,默认使用一个金属度贴图,其中r通道保存金属度,a通道保存光滑度,g通道和b通道没使用;我们很可能使用Occlusion Map,使用其中的g通道保存Occlusion 信息。单独使用一个Occlusion Map比较耗性能,可将信息保存在金属度贴图的g通道中;因此,我们需要贴图合并;

qilin598866753的博客 953

将多个Map合并

1.先来一个demopublic static void main(String[] args) { Map&lt;String, String&gt; map1 = new HashMap&lt;String, String&gt;(){{ put("1", "a"); put("2", "b"); put("3", &

u010999809的博客 2万+
上一篇: 阻塞队列和非阻塞队列
下一篇: LeetCode常见的回文串问题汇总
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值