📅  最后修改于: 2023-12-03 15:01:53.485000             🧑  作者: Mango
在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()
方法的介绍和示例。该方法可以方便地根据键计算值并将其与键关联,避免了手动判断键是否存在的繁琐操作,提高了代码的简洁性和可读性。