在 Java 8 中向 Map<String、List> 中的 List 中添加值

2022-09-02 00:31:25

在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

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

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

答案 2

推荐