Java -包含字符串列表作为值的合并映射



我有一个Map下面,我正在合并更新包含列表的地图。是否有更好/简洁的方式来执行此合并操作?

Map<String, List<String>> myMap = new HashMap<>();
List<String> keys = externalService.getKeys();
for(String key: keys){
List<String> value = externalService.get(key);
myMap.merge(
key,
value,
(existingValue, newValue) -> {
existingValue.addAll(newValue);
return existingValue;
}
);
}

如果您愿意为新键分配额外的列表,则可以使用computeIfAbsent():

for (String key : keys) {
myMap.computeIfAbsent(key, k -> new ArrayList<>())
.addAll(externalService.get(key));
}

最新更新