【发布时间】:2016-08-08 11:00:20
【问题描述】:
我有两个长度相同、键名相同但值不同的linkedHashmap。例如:
Map<String, Double> map1= new LinkedHashMap<String, Double>();
map1.put("A", 2.3);
map1.put("B", 6.1);
map1.put("C", 5.3);
Map<String, Double> map2= new LinkedHashMap<String, Double>();
map2.put("A", 10.3);
map2.put("B", 60.1);
map2.put("C", 0.3);
如何将 map1 中的每个值与 map2 中相同的对应键(A 2.3*10.3、B 6.1*60.1 等)相乘并将结果保存到新的linkedHashMap?
我试过了,但没有运气。
Map<String, Double> map3= new LinkedHashMap<String, Double>();
double valueMap1 = map1.get(key);
double valueMap2 = map2.get(key1);
for(String key : map1.keySet())
for(String key1 : map2.keySet()){
if(map1.containsKey(key1)){
double newValue =valueMap1* valueMap2;
map3.put(key1, newValue);
}
}
【问题讨论】:
-
徒手尝试了什么?
-
解决方法很简单,请说明您尝试了什么以及您在哪里失败了。如果您还没有尝试过任何事情,请先尝试,如果没有成功,请询问
-
你的两个linkedhashmap中键的顺序是一样的吗?然后您可以将排序后的映射的值作为列表获取并进行所需的乘法,将值保存到新列表中,然后组合键和值。
-
@MichaelGantman 我已经添加了我尝试但没有成功的内容,我对地图比较陌生,所以我对这个问题感到很迷茫。
-
您不应该使用嵌套循环。此任务只有一个循环。
标签: java hashmap linkedhashmap