areaMap.computeIfAbsent
时间: 2024-01-18 20:18:46 浏览: 77
根据提供的引用内容,`areaMap.computeIfAbsent`是`ConcurrentHashMap`类中的一个方法。它的作用是如果指定的键不存在于映射中,则使用给定的函数计算一个值并将其插入到映射中。该方法的签名如下:
```java
default V computeIfAbsent(K key, Function<? super K, ? extends V> mappingFunction)
```
其中,`key`是要检查的键,`mappingFunction`是一个函数,用于根据给定的键计算一个值。如果键已经存在于映射中,则不会调用函数,而是直接返回与键关联的值。
以下是一个示例演示如何使用`computeIfAbsent`方法:
```java
ConcurrentHashMap<String, Integer> areaMap = new ConcurrentHashMap<>();
areaMap.put("A", 1);
areaMap.put("B", 2);
int value = areaMap.computeIfAbsent("C", key -> key.length());
System.out.println(value); // 输出:1
value = areaMap.computeIfAbsent("B", key -> key.length());
System.out.println(value); // 输出:2
```
在上面的示例中,我们首先将键值对"A"和"1","B"和"2"放入`areaMap`中。然后,我们使用`computeIfAbsent`方法来获取键"C"对应的值。由于键"C"不存在于映射中,所以我们使用键的长度作为值进行计算,并将其插入到映射中。最后,我们再次使用`computeIfAbsent`方法来获取键"B"对应的值。由于键"B"已经存在于映射中,所以不会调用函数,而是直接返回与键"B"关联的值。
阅读全文