我有两个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
}
}
如何解决?
答案 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
注意:
您还需要处理两个地图之间不同的键。我假设这两个映射包含完全相同的键。只是为了保持简单明了。