У меня есть 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)
}
}
}
Также иногда карта, возвращаемая someMapFunction
является неизменной картой, поэтому это невозможно сделать с помощью Map.replaceAll
. Я не мог придумать решение, которое было чище.