computeIfAbsent()
时间: 2023-11-01 18:58:11 浏览: 50
computeIfAbsent()方法是Java 8中Map接口新增的一个方法,用于在Map中根据指定的键获取对应的值。如果该键不存在,则使用指定的函数计算出一个默认值并将其存储到Map中,最后返回该默认值。具体语法如下:
V Map.computeIfAbsent(K key, Function<? super K, ? extends V> mappingFunction)
其中,key表示要获取值的键,mappingFunction表示计算默认值的函数。如果Map中已经存在指定的键,则直接返回该键对应的值;否则,使用mappingFunction计算出一个默认值,并将该键和默认值存储到Map中,最后返回该默认值。
示例代码如下:
Map<String, Integer> map = new HashMap<>();
map.put("apple", 1);
map.put("banana", 2);
int orangeCount = map.computeIfAbsent("orange", k -> 0);
System.out.println(orangeCount); // 输出 0
int appleCount = map.computeIfAbsent("apple", k -> 0);
System.out.println(appleCount); // 输出 1
相关问题
computeIfAbsent
computeIfAbsent 方法是 Java 8 中 Map 接口的一种新方法,它在 map 中查找与指定键关联的值。如果该键不存在,则将指定的值与该键关联,并返回该值。如果该键存在,则返回其关联值。
语法:
V computeIfAbsent(K key, Function<? super K, ? extends V> mappingFunction)
参数:
- key - 要在此映射中查找的键。
- mappingFunction - 如果需要,将调用其来计算值的函数。
返回值:
- 如果存在该键的关联值,则返回该值。
- 如果不存在该键的关联值,则使用指定的函数计算值并将其与该键关联,然后返回该值。
示例:
```
Map<String, Integer> map = new HashMap<>();
map.computeIfAbsent("a", key -> key.length());
```
上面这段代码中,如果map中不存在键"a",则使用给定的函数计算值,计算出来的值为1,并将键"a"和值1加入map。
computeifabsent
`computeIfAbsent` 是 Java 8 中 Map 接口提供的一个方法,它的作用是:如果 key 对应的 value 不存在,则使用给定的 mapping function 计算 value,并将 (key, value) 存储到 map 中,最后返回 value。如果 key 对应的 value 已经存在,则直接返回该 value。
下面是 `computeIfAbsent` 方法的函数签名:
```java
V computeIfAbsent(K key, Function<? super K, ? extends V> mappingFunction);
```
其中:
- `key`:要计算 value 的 key。
- `mappingFunction`:计算 value 的函数。
示例代码:
```java
Map<String, Integer> map = new HashMap<>();
map.put("one", 1);
// 如果 key "two" 对应的 value 不存在,则计算并存储
Integer val = map.computeIfAbsent("two", k -> k.length());
System.out.println(val); // 输出 3
// 如果 key "one" 对应的 value 已经存在,则直接返回
val = map.computeIfAbsent("one", k -> k.length());
System.out.println(val); // 输出 1
```
在上面的代码中,`"two"` 对应的 value 不存在,所以 `mappingFunction` 计算 `"two"` 的长度为 3,并将 (`"two"`, 3) 存储到了 map 中。而 `"one"` 对应的 value 已经存在,所以直接返回了该 value。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)