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

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

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

介绍

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() 方法不会更改原有的值。