我有两张地图,我想使用第二张地图转换第一张地图值。
Map<T, Double> firstMap = Maps.newHashMap(with some value...);
Map<T, Double> secondMap = Maps.newHashMap(with some value...);
Map<T, Double> finalMap = Maps.newHashMap();
for(Entry<T, Double> entry : firstMap.entrySet())
{
finalMap.put(entry.getKey(), entry.getValue() * secondMap.get(entry.getKey()));
}
我想以下列方式转换第一张地图。
第一张地图中元素T的值应与第二张地图中的值相乘。第一张地图是第一张地图的子集。
感谢。
答案 0 :(得分:1)
使用番石榴:
public static final void main(final String... args) {
final Map<String, Integer> map1 = ImmutableMap.of("key0", 2, "key1", 3);
final Map<String, Integer> map2 = ImmutableMap.of("key0", 2, "key1", 3, "key2", 3);
final Map<String, Integer> transformed = Maps.transformEntries(map1,
new EntryTransformer<String, Integer, Integer>() {
@Override
public Integer transformEntry(final String key, final Integer value) {
return map2.get(key) * value;
}
});
//result {key0=4, key1=9}
System.out.println(transformed);
}