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 中文站