我有一个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));
}