import java.util.HashMap;
import java.util.Map;
import java.util.function.Function;
public class MapComputeIfAbsentExample {
public static void main(String[] args) {
// 创建一个HashMap实例
Map<String, Integer> map = new HashMap<>();
// 使用computeIfAbsent方法
// 如果指定的键不存在,则计算并插入值
map.computeIfAbsent("apple", k -> 10);
map.computeIfAbsent("banana", k -> 20);
map.computeIfAbsent("apple", k -> 30); // 这里不会更新,因为"apple"已经存在
// 输出结果
System.out.println(map); // 输出: {apple=10, banana=20}
// 另一个示例,使用lambda表达式计算更复杂的值
map.computeIfAbsent("orange", MapComputeIfAbsentExample::computeValue);
// 输出结果
System.out.println(map); // 输出: {apple=10, banana=20, orange=50}
}
// 一个简单的计算方法
public static Integer computeValue(String key) {
return key.length() * 10;
}
}
computeIfAbsent
是 Java 8 引入的一个非常有用的方法,它用于在 Map
中检查指定键是否不存在。如果键不存在,则根据提供的映射函数计算并插入新值。HashMap
并使用 computeIfAbsent
方法来插入或获取键对应的值。computeIfAbsent("apple", k -> 10)
时,由于 "apple"
键不存在,因此会插入键值对 "apple" -> 10
。computeIfAbsent("apple", k -> 30)
时,由于 "apple"
已经存在,因此不会更新其值,仍然保持为 10
。上一篇:java二维数组定义方法
下一篇:java 有序的map
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站