我有一个Map<String, Double>,并希望将地图中的所有值乘以2,比方说,但是将空值保持为空.
我显然可以使用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)
}
}
}
Run Code Online (Sandbox Code Playgroud)
有时候返回的地图someMapFunction是一个不可变的地图,所以这不能用就地做Map.replaceAll.我无法想出一个更清洁的流解决方案.