Stream两个Map的value值进行相加/相减,并将合并数据集赋值给新Map

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

两个Map对应的value值进行加减操作

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

map1.forEach((key,value)->map4.merge(key,value,(v1,v2)->v1+v2));
map3.forEach((key,value)->map5.merge(key,value,(v1,v2)->v2-v1));

实例演示

public static void main(String[] args) {
        Map<String,Integer> map1 = new HashMap<>();
        map1.put("1",1);
        map1.put("2",2);
        map1.put("3",3);
        map1.put("4",4);
        Map<String,Integer> map2 = new HashMap<>();
        map2.put("1",1);
        map2.put("2",2);
        map2.put("3",3);
        map2.put("5",5);
        Map<String,Integer> map3 = new HashMap<>();
        map3.put("1",2);
        map3.put("2",4);
        map3.put("3",6);
        map3.put("5",8);
        //以map2为基准,存放相加value值的数据集
        Map<String, Integer> map4 = new HashMap<>(map2);
        //以map1为基准,存放相减value值的数据集
        Map<String, Integer> map5 = new HashMap<>(map1);
        map1.forEach((key,value)->map4.merge(key,value,(v1,v2)->v1+v2));
        System.out.println("原始数据集1: "+map1);
        System.out.println("原始数据集2: "+map2);
        System.out.println("原始数据集3: "+map3);
        System.out.println("存放相加value值的数据集Map: "+map4);

        map3.forEach((key,value)->map5.merge(key,value,(v1,v2)->v2-v1));
        System.out.println("原始数据集1: "+map1);
        System.out.println("原始数据集2: "+map2);
        System.out.println("原始数据集3: "+map3);
        System.out.println("存放相加value值的数据集Map: "+map5);
    }

结果截图:
java中map的value相加,java 8 新特性,java,jvm,算法
从结果图中可以看出,两个map进行相加或者相减是可以看出,key值相同的进行value值进行相加减,key值不同的进行追加。文章来源地址https://www.toymoban.com/news/detail-629159.html

到了这里,关于Stream两个Map的value值进行相加/相减,并将合并数据集赋值给新Map的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • java 合并两个Map

    在开发中,有时需要将多个Map合并成一个Map,接下来就举例说明: 我的使用场景:以map2中已经存在的key的值为准 把需要的字段从一个Map中一个个set到另一个Map中 输出结果为: 这个结果不是我想要的! putAll() 方法 输出结果为: 这个结果不是我想要的! 通过java8的方式 输出

    2024年02月11日
    浏览(35)
  • Java中,合并两个Map

    在Java中,合并两个Map可以使用putAll()方法,但是默认情况下,如果被合并的Map中有null值,它们会被丢弃。 如果想要保留null值,可以使用下面的代码: 这里将两个Map合并成一个新的Map,如果被合并的Map中的value有null,会被保留在新的Map中。 示例: 输出结果中,被合并的Map中

    2024年02月11日
    浏览(32)
  • JAVA8新特性stream流收集为Map,value为null导致空指针的问题

    jdk8 新特性stream深受喜爱,平时使用比较多,其中有: MapString, String collect2 =  list.stream().collect(Collectors.toMap(Book::getName, Book::getIdNO,(pre, after) - pre));  现象如下: 问题:JDK8环境下,如果Book::getIdNo 为null的话会报空指针,即JDK8环境下的,该接口不支持value为null(key为null没这个问

    2024年02月06日
    浏览(48)
  • Stream流 - 两个list集合对象属性的合并、对象属性值运算

    📅 合并两个 list<map>, 并将 userId 相同的所有属性合并到一个 map 中 list1中对象的属性:userId、userName list2中对象的属性:userId、gender、age 📌 最终总集合中对象的属性:userId、userName、gender、age 运行结果: 结果可见,userId 相同的所有属性合并到集合 list1中。 📅 合并两个

    2024年02月06日
    浏览(79)
  • <List<Map<String,Object>>>循环List Map获取里面的key和value,进行操作

    输出: Map循环:(Value为Object)

    2024年02月12日
    浏览(31)
  • Java对List<Map>进行合并去重

    对List 进行合并去重,首先创建一个新的 List 用于存储合并去重后的结果,遍历原始的 List ,将每个 Map 对象中的键值对放入一个 Set 中进行去重,最后将去重后的键值对重新组装成一个新的 Map 对象,并添加到新的 List 中。 完整实例代码如下: 简单示例仅供参考

    2024年02月05日
    浏览(31)
  • excel中如果A列中某项有多条记录,针对A列中相同的项,将B列值进行相加合并统计

    excel中如果A列中某项有多条记录,针对A列中相同的项,将B列值进行相加合并统计。注意:B列的数据类型要为数字 如: 实现方法: C1、D1中分别输入公式,然后下拉 效果如下:

    2024年02月11日
    浏览(36)
  • Git ① 通过git将本地两个项目进行合并

    ① 新建一个文件夹,打开之后在命令行输入 git init  初始化仓库。 ② 在新建的文件夹中随便创建一个文件(这样才能新建新的分支,不然新建分支命令没有作用) ③ 输入命令 git add .   和   git commit -m \\\"init\\\" 初始化仓库。 ① 输入命令 git checkout -b sub 创建一个名叫sub的分支

    2024年02月14日
    浏览(29)
  • 数据结构中: 一元多项式的运算(相加,相减,相乘)------用C语言 / C++来实现。 数据结构线性表的操作和应用(顺序存储)

    线性表的操作和应用(顺序存储)。用顺序存储实现一元多项式,并进行加、减、乘运算。 (1)一元多项式结构体创建  (2)初始化 (3)一元多项式赋值             (4)打印一元多项式 (5)加法运算                        (6)减法运算 (7)乘法运算    全部代

    2024年02月01日
    浏览(41)
  • Python 按照某列内容对两个DataFrame进行合并

    要将两个DataFrame进行合并,如 data1  和  data2 按照第一列的内容纵向合并为一个新的DataFrame,可以使用pandas库中的merge()方法,按照实际需求将 how参数设置为 ‘left’、‘right’、‘outer’、‘inner’。其中: inner: 内连接/交集。保留两个 DataFrame 共有的键,丢弃不匹配的行。

    2024年02月15日
    浏览(32)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包