computeIfAbsent 使用案例
时间: 2024-07-23 08:00:55 浏览: 56
`computeIfAbsent` 是 Java 中 `Map` 接口提供的一种便利方法,它用于在给定键不存在于 map 中时计算并添加值。这个方法会在键对应的 value 如果不存在时才执行提供的 `Function` 函数来计算新的值,并将结果存储在 map 中。这是一个非常实用的功能,因为它可以避免不必要的映射创建,提高性能。
一个简单的使用案例可能是这样的:
```java
Map<String, String> cache = new ConcurrentHashMap<>();
String key = "temperature";
String convertedValue = cache.computeIfAbsent(key, k -> {
// 如果 key 对应的 value 不存在,则执行此函数
// 假设我们有一个温度转换函数,这里假设华氏度转摄氏度
double fahrenheit = 90.0;
return convertFahrenheitToCelsius(fahrenheit);
});
System.out.println(convertedValue); // 输出将 Fahrenheit 转换后的 Celsius 温度
// 这里假设 convertFahrenheitToCelsius 已经定义好
public static String convertFahrenheitToCelsius(double fahrenheit) {
return String.valueOf((fahrenheit - 32) * 5 / 9);
}
```
在这个例子中,如果 `key` 对应的值尚未存在,`convertFahrenheitToCelsius` 将会被调用一次,然后返回的结果会被存入 map。
阅读全文