MapUtil.computeIfAbsent
时间: 2024-10-08 18:17:16 浏览: 18
MapUtil.computeIfAbsent是Google Guava库中的一个方法,用于在给定的Map中计算并返回一个值,如果该键在Map中不存在。如果键已经存在,则不会执行任何操作。这个方法非常有用,因为它允许你根据键的值动态地创建或更新值,而无需显式地使用if-else语句。
这个方法的基本语法如下:
```java
public static <K, V> V computeIfAbsent(Map<K, V> map, K key, Function<? super K, ? extends V> function)
```
参数说明:
* `map`:要操作的Map。
* `key`:要查找的键。
* `function`:一个函数,用于根据给定的键值计算新的值。如果键已经存在于Map中,该函数将不会被调用。
这个方法返回的是计算后的值,如果键不存在于Map中,则返回null。
以下是一个简单的示例,展示了如何使用MapUtil.computeIfAbsent方法:
```java
import com.google.common.collect.MapUtil;
import java.util.HashMap;
import java.util.Map;
public class Example {
public static void main(String[] args) {
Map<String, Integer> map = new HashMap<>();
map.put("apple", 1);
map.put("banana", 2);
map.put("orange", 3);
int orangeCount = MapUtil.computeIfAbsent(map, "orange", k -> 0);
System.out.println("Number of oranges: " + orangeCount); // Outputs: Number of oranges: 3
}
}
```
在这个示例中,我们首先创建了一个包含三个键值对的Map。然后,我们使用MapUtil.computeIfAbsent方法计算并返回"orange"键对应的值(如果不存在则为0)。最后,我们打印出计算后的结果,即"orange"的数量为3。
阅读全文