📅  最后修改于: 2023-12-03 15:16:23.348000             🧑  作者: Mango
computeIfAbsent()
是 Java 中 Hashtable
类的一个方法,它的作用是在给定的键值在哈希表中不存在时,通过给定的函数生成一个值,并将键值和这个值关联起来。这个方法可以方便地实现缓存的功能。
import java.util.Hashtable;
class Main {
public static void main(String[] args) {
Hashtable<String, Integer> hashtable = new Hashtable<>();
// 使用 computeIfAbsent() 方法将新的键值与值关联起来
int value = hashtable.computeIfAbsent("key", k -> 1);
System.out.println("Value for key: " + value);
// 再次调用 computeIfAbsent() 不会更改已存在的值
int value2 = hashtable.computeIfAbsent("key", k -> 2);
System.out.println("Value for key: " + value2);
}
}
上述代码中,我们创建了一个 Hashtable
对象,并使用 computeIfAbsent()
方法将 "key" 与 1 关联起来。第一个 println 语句会输出 "Value for key: 1"。
接着,我们再次调用 computeIfAbsent()
方法,并尝试用一个新的值来关联 "key"。由于此时 "key" 已经存在于哈希表中了,因此新的值不会被使用。第二个 println 语句会输出 "Value for key: 1",也就是说这个值没有被更改。
computeIfAbsent()
是一个非常方便的方法,可以帮助我们实现缓存的功能。通过这个方法,我们可以很容易地将一个函数和键值关联起来,这样在需要这个键值对应的值时,可以直接从哈希表中获取。需要注意的是,如果键值已经存在,computeIfAbsent()
方法不会更改原有的值。