如何将两个值与来自不同linkedHashMaps的相同键名相乘?

时间:2016-08-08 11:00:21

标签: java hashmap linkedhashmap

我有两个linkedHashmaps,它们具有相同的长度,具有相同的键名但值不同。例如:

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);
        }
      }

1 个答案:

答案 0 :(得分:1)

这是应解决问题的循环

Map<String, Double> map3= new LinkedHashMap<String, Double>();
for(String key : map1.keySet()) {
    if(map2.containsKey(key)) {
       map3.put(key, map1.get(key) * map2.get(key);
    }
}