当前位置: 首页 > 面试题库 >

如何轻松地将两个hashMap相加?

夏兴生
2023-03-14
问题内容

我有两个 HashMap<String,Integer>

我如何轻松总结它们?

意思是对于字符串“ a”,键将是(来自Map1的值+来自Map2的值)的总和?

我可以迭代Map2的每个项目,然后手动将其添加到Map1。

但是认为可能会有更简单的方法吗?

我更喜欢将Integers汇总到其中一张地图中。不创建一个新的


问题答案:

由于Java 8
Map包含merge需要

  • 键,
  • 新价值,
  • 和函数, 如果该值已经包含我们的密钥 ,它将用来决定要在地图中放置什么值(将基于新旧值进行决策)。

因此,您可以简单地使用:

map2.forEach((k, v) -> map1.merge(k, v, Integer::sum));

现在,您map1将包含的所有值,map2并且如果键相同,则将旧值添加到新值中,并将结果存储在map中。

演示:

Map<String, Integer> m1 = new HashMap<>();
m1.put("a", 1);
m1.put("b", 2);
Map<String, Integer> m2 = new HashMap<>();
m2.put("a", 3);
m2.put("c", 10);

System.out.println(m1);
System.out.println(m2);

//iterate over second map and merge its elements into map 1 using 
//same key and sum of values
m2.forEach((k, v) -> m1.merge(k, v, Integer::sum));

System.out.println("===========");
System.out.println(m1);

输出:

{a=1, b=2}
{a=3, c=10}
===========
{a=4, b=2, c=10}


 类似资料:
  • 问题内容: 上面的代码用于我的servlet。其目的是获取流,从中创建一个Json文件,然后将Json发送回客户端。但是为了制作Json,我必须使用“ while”循环读取对象。但是,我想用尽可能少的代码行将其转换为字符串。我怎么做? 问题答案: 从Java 8:

  • 本文向大家介绍6步轻松实现两个listView联动效果,包括了6步轻松实现两个listView联动效果的使用技巧和注意事项,需要的朋友参考一下 看了网上更新的好多联动demo,感觉写的不是很简洁(表示不知道他们在说什么) 自己写了一个简单的Demo分享给大家- -! 效果图: 直接上车,少说废话! 所用到以下的这几个依赖,直接粘到Build.gradle文件中 1.定义首页的布局文件 2.Main

  • 这是我制作的hashmap(Ik它不是最好的,也没有太多的逻辑),我想知道如果用户输入像“DVIII”这样的数据,其中“d”的值为“500”,“viii”的值为“8”,然后将它们打印为DVIII=5008,那么如何连接hashmap的值

  • 问题内容: 有没有一种方法可以让IDE自动修复Checkstyle错误,而不必手动修复每个错误? 问题答案: 如果您使用的是Eclipse,则可以。但是,您无法解决所有问题。有两种方法: 右键点击Package Explorer或其他中的Java文件,然后选择“应用Checkstyle改正”。 单击问题视图中的错误,然后选择“快速修复”。这样可以解决问题。

  • 问题内容: 我开发了一个简单的Python应用程序来做一些事情,然后决定使用Tkinter添加一个简单的GUI。 问题在于,当main函数正在执行其工作时,窗口会冻结。 我知道这是一个普遍的问题,我已经读过我应该使用多线程(非常复杂,因为该函数还会更新GUI)或将我的代码划分为不同的函数,每个函数工作一段时间。无论如何,我不想为这样一个愚蠢的应用程序更改代码。 我的问题是:有没有简便的方法可以每秒