map.computeifabsent()
时间: 2023-09-04 21:07:33 浏览: 99
`map.computeIfAbsent()` 是 Java 中的一个方法,它用于在 Map 中根据指定的键计算并返回对应的值,如果键不存在,则使用提供的函数来计算该值并将其插入到 Map 中。
这个方法的签名如下:
```
default V computeIfAbsent(K key, Function<? super K,? extends V> mappingFunction)
```
参数说明:
- `key`:要查询或插入的键。
- `mappingFunction`:一个函数,用于根据给定的键计算值的函数。
该方法的作用是:
- 如果 Map 中已经存在指定的键,则返回与该键关联的值。
- 如果 Map 中不存在指定的键,则使用提供的函数计算一个值,并将该键及其对应的值插入到 Map 中,然后返回计算得到的值。
下面是一个示例代码:
```java
import java.util.HashMap;
import java.util.Map;
public class Main {
public static void main(String[] args) {
Map<String, Integer> map = new HashMap<>();
// 使用 computeIfAbsent 插入新键值对
int value1 = map.computeIfAbsent("key1", k -> k.length());
System.out.println(value1); // 输出:4
// 使用 computeIfAbsent 获取已存在的值
int value2 = map.computeIfAbsent("key1", k -> k.length() + 1);
System.out.println(value2); // 输出:4
}
}
```
在上面的示例中,我们首先使用 `computeIfAbsent` 方法将键 `"key1"` 和其对应的值 `4` 插入到了 Map 中。然后再次调用 `computeIfAbsent` 方法时,由于键 `"key1"` 已经存在于 Map 中,因此不会再次计算值,而是直接返回原来的值 `4`。
希望这个解答能够帮助到你!如有更多问题,请继续提问。
阅读全文