J'ai un Map<String, Double>
, et je veux multiplier toutes les valeurs de la carte par 2, par exemple, mais garder les valeurs nulles comme nulles.
Je peux évidemment utiliser une boucle for pour ce faire, mais je me demandais s'il y avait un moyen plus propre de le faire?
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)
}
}
}
Parfois aussi, la carte renvoyée par someMapFunction
est une carte immuable, donc cela ne peut pas être fait sur place en utilisant Map.replaceAll
. Je ne pouvais pas trouver une solution de flux plus propre.