我有一张地图。键是字符串,值是字符串列表。如果地图中没有键,我想插入键及其值,这是一个新创建的元素列表。如果该键已经存在于地图中,我只想通过向该列表添加一个元素来更新其值。可以用纯Java完成。但是我想通过使用Java 8 Map.computeIfAbsent()
和Map.computeIfPresent()
方法来实现。另外,如果可能的话,我该如何使用Map.merge()
来做到这一点。
Map<String,List<String>> listMap = null;
listMap.computeIfAbsent(fiId, key -> new ArrayList<>()).add("any value");
listMap.computeIfPresent(fiId, (key, values) -> values.add("any value"));
下面是我的合并语法。
listMap.merge(fiId, new ArrayList<>(Arrays.asList("any value")), (key, values) -> ??????);
对于第一种情况,因为values.add()
返回一个布尔值。如何将其转换为“列表”?