Java中,合并两个Map

这篇具有很好参考价值的文章主要介绍了Java中,合并两个Map。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在Java中,合并两个Map可以使用putAll()方法,但是默认情况下,如果被合并的Map中有null值,它们会被丢弃。

如果想要保留null值,可以使用下面的代码:

public static <K, V> Map<K, V> mergeMaps(Map<K, V> map1, Map<K, V> map2) {
    Map<K, V> result = new HashMap<>(map1);
    for (Map.Entry<K, V> entry : map2.entrySet()) {
        K key = entry.getKey();
        V value = entry.getValue();
        if (value != null) {
            result.put(key, value);
        } else if (!result.containsKey(key)) {
            result.put(key, null);
        }
    }
    return result;
}

这里将两个Map合并成一个新的Map,如果被合并的Map中的value有null,会被保留在新的Map中。

示例:

Map<String, String> map1 = new HashMap<>();
map1.put("a", "1");
map1.put("b", null);
map1.put("c", "3");

Map<String, String> map2 = new HashMap<>();
map2.put("b", "2");
map2.put("c", null);
map2.put("d", "4");

Map<String, String> result = mergeMaps(map1, map2);
System.out.println(result); // {a=1, b=null, c=null, d=4}

输出结果中,被合并的Map中的value为null的键值对被保留了下来。文章来源地址https://www.toymoban.com/news/detail-516587.html

到了这里,关于Java中,合并两个Map的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 解决Caused by: java.lang.IllegalStateException: Ambiguous mapping. Cannot map ‘inteController‘

    出现这个错也可能会出现项目无法启动的错误。完整错误是 一、错误出现原因 :         controller层出现了重复的方法映射                  可以看到图片中两个方法的映射是一样的,这是问题所在 解决方法也很简单,既然已经知道了问题所在那么解决起来也很简单

    2024年02月10日
    浏览(29)
  • Java 连接合并两个数组(Array)的五种方法

    T可以是基础类型,也是类类型

    2024年02月05日
    浏览(43)
  • 【Java】Java合并两个List后并去掉重复项的几种做法

    工作中很多时候需要用到合并两个List并去除其中的重复内容,这是一个很简单的操作,实现的方法也多种多样。 下面以具体实例展示给大家~ 可以很清楚的看出通过Stream完成的代码看上去更加简洁流畅 这样做后的list就是合并并去重后的结果

    2024年02月11日
    浏览(45)
  • Java合并两个List并去掉重复项的几种做法

    一、前言 工作中很多时候需要用到合并两个List并去除其中的重复内容,这是一个很简单的操作,实现的方法也多种多样,请继续往下看 二、使用stream方式进行去重(需要jdk1.8及以上) 可以很清楚的看出通过Stream完成的代码看上去更加简洁流畅  三、使用HashSet集合的方式进行去重

    2024年02月11日
    浏览(39)
  • Stream两个Map的value值进行相加/相减,并将合并数据集赋值给新Map

    最近做项目遇到,需要把两个Map中的value值进行相加或相减,循环遍历方法太麻烦,有时候数据量大的时候,还会超时。因此使用java8中Stream的Merge方法来处理上述问题,使用如下: 结果截图: 从结果图中可以看出,两个map进行相加或者相减是可以看出,key值相同的进行valu

    2024年02月14日
    浏览(34)
  • Java中合并两个数组的4种方法(How to Merge Two Arrays in Java)

    int[] arr1={1, 2, 3, 4, 5, 6}; //first array int[] arr2={7, 8, 9, 0}; //second array int[] arr3={1, 2, 3, 4, 5, 6, 7, 8, 9, 0} //resultant array There are following ways to merge two arrays: 1.Java arraycopy() method 2.Without using arraycopy() method 3.Java Collections 4.Java Stream API Java arraycopy() is the method of System class which belongs to java.la

    2024年02月11日
    浏览(31)
  • java两个数组合并为一个数组

    1、int[]数组 合并结果为: [1, 2, 6, 7, 8, 9]  2、String[]数组 合并结果为: [阿, java, so, easy, is, very, good] 方法一:使用for循环 1、使用两个for循环将数组 a 和数组 b 中的元素复制到数组 c 中 2、第一个for循环将数组 a 中的元素复制到数组 c 的前半部分 3、第二个for循环将数组 b 中

    2024年02月15日
    浏览(31)
  • java将map中的值复制到另一个map中

    问题描述: 需要将一个sourceMap中设置的属性值copy到另一个targetMap中去,要求在sourceMap中没有设置的值,targetMap要保持不变,并且支持List中有Map的情况的复制。 **解决方案:**递归复制map中的值,List中如果是map的话则继续递归复制值。代码在最后面 sourceMap如下: targetMap如下

    2024年02月12日
    浏览(36)
  • Discuz论坛网站标题栏Powered by Discuz!版权信息如何去除或是修改?

    当我们搭建好DZ论坛网站后,为了美化网站,想把标题栏的Powered by Discuz!去除或是修改,应该如何操作呢?今天飞飞和你分享,在操作前务必把网站源码和数据库都备份到本地或是网盘。   Discuz的版权信息存在两处地方,一个是标题栏,一个是底部。一般为了美化修改个标

    2024年02月08日
    浏览(59)
  • Matlab怎样合并两个矩阵(怎样合并多个矩阵)为一个矩阵

       Hi,科研大神,厌倦了某宝的Chat账号总是封号失联吗?需要稳定的单独账号吗?联系下方企鹅号走起来,都是科研人为大家做点有意义的事情,为您的科研助力~ 如果您需要稳定的-Chat哥婆特账号or图书文献资料- 请加企鹅号-都是科研人为大家科研助力~  

    2024年02月11日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包