比较两个HashMap并乘以地图值

时间:2020-04-30 15:24:53

标签: java arraylist hashmap

我有两个HashMap,可以说它们具有以下值:

 HashMap1 : <x, 1>, <y, 2>, <z, 3>

 HashMap2 : <x,10>, <y, 20>, <z,30>

我想乘以相应的值,然后将这些值相加,例如:1 * 10 + 2 * 20 + 3 * 30。但是,我不确定是否必须使用2个循环或其他迭代。我使用了一个循环,但是并没有解决问题:

for (Map.Entry<Character, Integer> entry : map1.entrySet()) {
    int sum=0;
    if(map2.containsKey(entry.getKey())) {
        sum+=entry.getValue() * ...; //it gets map1 values but I also need map2 values to multiply
    }
}

如何解决?

1 个答案:

答案 0 :(得分:2)

([?&](?!.*&)|(?<=[?&;]))(?!(param1))(?=(param1|param2))([^&;=\n\r]*)=.*?($|[&;]) whitelist ◄└──────┘ └─────────────┘► blacklist 之前:

Java 8

int sum = 0; for (Map.Entry<String, Integer> entry : map1.entrySet()) { sum += entry.getValue() * map2.getOrDefault(entry.getKey(), 1); } 起:

Java 8

注意:
您还需要处理两个地图之间不同的键。我假设这两个映射包含完全相同的键。只是为了保持简单明了。