基本上,更好的写作方式:
Map<String, String> originalMap = getMapOfValues();
Map<String, String> newMap = originalMap.entrySet()
.stream()
.map(entry ->
Maps.immutableEntry(entry.getKey(), mapValue(entry.getValue()))
).collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue);
(Maps.immutableEntry
是来自番石榴的方法)
答案 0 :(得分:8)
为什么需要将您的参赛作品映射到Maps.immutableEntry()
?您可以跳过该步骤:
Map<String, String> originalMap = getMapOfValues();
Map<String, String> newMap =
originalMap.entrySet()
.stream()
.collect(Collectors.toMap(Map.Entry::getKey,
entry -> mapValue(entry.getValue())));
答案 1 :(得分:3)
不使用Streams,您可以执行以下操作:
Map<String, String> originalMap = getMapOfValues();
Map<String, String> newMap = new HashMap<>(originalMap);
newMap.replaceAll((key, value) -> mapValue(value));