📜  Java中的 HashMap computeIfAbsent() 方法及示例(1)

📅  最后修改于: 2023-12-03 15:01:53.485000             🧑  作者: Mango

Java中的 HashMap computeIfAbsent() 方法及示例

在Java中,HashMap是一个常用的键值对集合实现,它基于哈希表的数据结构,提供了快速的插入、查找和删除操作。

computeIfAbsent()Map接口中的一个默认方法,它用于根据指定的键计算值并将其与键关联,如果键已存在,则不执行计算。它的方法签名如下:

default V computeIfAbsent(K key, Function<? super K, ? extends V> mappingFunction)

参数说明:

  • key:要进行计算的键
  • mappingFunction:用于根据键计算值的函数

该方法的使用场景通常是,当我们需要根据键获取对应的值时,如果该键在HashMap中不存在,则需要根据键计算出一个默认的值,并将其与键关联起来。

下面是一个示例,演示了如何使用computeIfAbsent()方法:

import java.util.HashMap;
import java.util.Map;

public class HashMapExample {

    public static void main(String[] args) {
        // 创建一个 HashMap
        Map<String, Integer> map = new HashMap<>();

        // 使用 computeIfAbsent() 方法添加键值对
        map.computeIfAbsent("A", key -> 10);
        map.computeIfAbsent("B", key -> 20);
        map.computeIfAbsent("C", key -> 30);

        // 打印 HashMap 的内容
        System.out.println(map);  // 输出: {A=10, B=20, C=30}

        // 使用 computeIfAbsent() 方法更新已有键的值
        map.computeIfAbsent("B", key -> 40);

        // 打印 HashMap 的内容
        System.out.println(map);  // 输出: {A=10, B=20, C=30}
    }
}

在上面的示例中,我们首先创建了一个空的HashMap对象 map。然后,我们使用computeIfAbsent()方法分别将键值对 "A=10"、"B=20" 和 "C=30" 添加到map中。最后,我们再次使用computeIfAbsent()方法尝试更新键 "B" 的值,但由于该键已经存在,计算函数不会执行,所以map的内容保持不变。

以上就是关于Java中的HashMap computeIfAbsent()方法的介绍和示例。该方法可以方便地根据键计算值并将其与键关联,避免了手动判断键是否存在的繁琐操作,提高了代码的简洁性和可读性。