有没有一种干净(且空安全)的方法来乘以Java中的映射值?
2022-08-31 22:21:16
我有一个,并且想要将映射中的所有值乘以2,但将nulls保留为null。Map<String, Double>
我显然可以使用for循环来执行此操作,但是想知道是否有更干净的方法来执行此操作?
Map<String, Double> someMap = someMapFunction();
Map<String, Double> adjustedMap = new Hashmap<>();
if (someMap != null) {
for (Map.Entry<String,Double> pair : someMap.entryset()) {
if (pair.getValue() == null) {
adjustedMap.put(pair.getKey(), pair.getValue());
} else {
adjustedMap.put(pair.getKey(), pair.getValue()*2)
}
}
}
此外,有时 返回的映射是不可变的映射,因此无法使用 到位完成此操作。我无法想出一个更干净的流解决方案。someMapFunction
Map.replaceAll