📜  Java中的 HashTable putIfAbsent() 方法及示例(1)

📅  最后修改于: 2023-12-03 14:42:47.698000             🧑  作者: Mango

Java中的 HashTable putIfAbsent() 方法

简介

在Java中,HashTable是一个线程安全的哈希表,可以存储键值对,其中键和值都不能为空。HashTable中提供了put()方法用于将键值对存储到哈希表中,如果已经存在相同的键,则会覆盖原来的值。而putIfAbsent()方法则是仅在键不存在的情况下将键值对存储到哈希表中。

putIfAbsent() 方法的语法
V putIfAbsent(K key, V value)

参数说明:

  • key:要存储的键
  • value:要存储的值

返回值:

  • 如果键不存在,则返回null
  • 如果键已存在,则返回原来的值
putIfAbsent() 方法的示例
import java.util.Hashtable;

public class Demo {
    public static void main(String[] args) {
        Hashtable<String, Integer> table = new Hashtable<>();

        table.putIfAbsent("a", 1);
        table.putIfAbsent("b", 2);

        System.out.println(table); // 输出:{b=2, a=1}

        table.putIfAbsent("a", 3);

        System.out.println(table); // 输出:{b=2, a=1}
    }
}

在上面的示例中,我们首先创建了一个空的HashTable对象。然后,我们使用putIfAbsent()方法将键值对a=1和b=2存储到哈希表中。在第一次调用putIfAbsent()时,键"a"不存在,因此"a=1"被成功存储到哈希表中。在第二次调用putIfAbsent()时,键"a"已经存在,所以值不会被覆盖,保持为原来的值。

最后,我们使用System.out.println()打印出存储在HashTable中的键值对。可以看到,HashTable中的键值对已按字典序排好序,并且键"a"对应的值为1而不是3,这说明putIfAbsent()方法确实只在键不存在的情况下才会存储键值对。