我有这样一段代码:
private static void computeMapAddition(Map<String, List<XXX>> objectMap,
XXX objectToAdd, String key) {
if (objectMap.containsKey(key)) {
List<XXX> objectList = objectMap
.get(key);
objectList.add(objectToAdd);
} else {
List<XXX> objectList = new ArrayList<>();
objectList.add(objectToAdd);
objectMap.put(key, objectList);
}
}
此代码的作用:
1)如果Map包含键,则检索值(即List),并向列表添加元素(它可能已经有很多元素)
2)如果map不包含键,则创建新列表,向新创建的列表添加元素,并将该元素(键,值)放入map
使用Java8有什么方法可以使它不那么冗长吗?
3条答案
按热度按时间taor4pac1#
java 8在
Map
接口中添加了computeIfAbsent
,它完全符合您的要求:或者你可以把它们组合起来
dced5bon2#
对@misha answer的一些补充。
我们可以使用两个选项:
1.计算如果不存在(首选)
1.计算
63lcw9qa3#
我的工作是: