infoMap.computeIfAbsent
时间: 2023-12-05 22:36:54 浏览: 71
PyPI 官网下载 | infomap-1.1.2.tar.gz
`infoMap.computeIfAbsent` 是 Java 8 中 Map 接口新增的方法之一,它的作用是根据指定的 key 计算一个 value,并将其与 key 关联起来(如果不存在的话)。该方法的签名如下:
```
default V computeIfAbsent(K key, Function<? super K, ? extends V> mappingFunction)
```
其中,`key` 表示要计算 value 的 key,`mappingFunction` 表示计算 value 的函数。如果 key 已经存在,则不会执行计算函数,直接返回对应的 value;否则,会执行计算函数,并将计算结果与 key 关联起来。
举个例子,假设我们有一个 `Map<String, List<Integer>>`,我们想要向其中添加一个元素,如果 key 不存在,则创建一个空的 List,并将其与 key 关联起来;如果 key 已经存在,则直接返回对应的 List。可以使用 `computeIfAbsent` 方法来实现:
```java
Map<String, List<Integer>> map = new HashMap<>();
String key = "foo";
List<Integer> value = map.computeIfAbsent(key, k -> new ArrayList<>());
value.add(42);
```
这样,如果 `map` 中不存在 key 为 "foo" 的元素,则会创建一个空的 List,并将其与 "foo" 关联起来;如果已经存在,则直接返回对应的 List,并将 42 添加到其中。
阅读全文