Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

java map computeifabsent

作者:至尊巅峰   发布日期:2025-05-12   浏览:109

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

大家都在看

java连接数据库的代码

ubuntu 卸载java

java sort用法

java collections.sort

java file类的方法

java 判断

java时间数据类型

java 时间加一天

java demo

java 截取

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站