在Java 8中向Map <string,list =“”>中的List添加值

时间:2017-01-25 20:27:28

标签: java lambda java-8 java-stream

Java 8中有更好的方法可以在Map中为List添加值吗?

在java 7中我会写:

Map<String, List<Integer>> myMap = new HashMap<>();
...
if (!myMap.containsKey(MY_KEY)) {
    myMap.put(MY_KEY, new ArrayList<>());
}
myMap.get(MY_KEY).add(value);         

1 个答案:

答案 0 :(得分:29)

您应该使用Map::computeIfAbsent方法创建或获取List

myMap.computeIfAbsent(MY_KEY, k -> new ArrayList<>()).add(value);