便宜VPS主机精选
提供服务器主机评测信息

Java ConcurrentHashMap putIfAbsent 方法详解及实现示例

putIfAbsent是Java中的一个方法,用于在映射(Map)中插入一个键值对。如果映射中不存在该键,则插入该键值对;否则,不执行任何操作。这个方法属于java.util.Map接口,并提供了多种实现,如HashMapTreeMap等。

以下是使用putIfAbsent方法的一些示例:

  1. 使用HashMap实现:
import java.util.HashMap;
import java.util.Map;

public class Main {
    public static void main(String[] args) {
        Map<String, String> map = new HashMap<>();
        map.put("key1", "value1");
        map.put("key2", "value2");

        // 尝试插入一个不存在的键值对
        String newValue = "value3";
        String existingValue = map.putIfAbsent("key1", newValue);

        if (existingValue == null) {
            System.out.println("Key1 was not present, and has been inserted with value: " + newValue);
        } else {
            System.out.println("Key1 was already present with value: " + existingValue);
        }
    }
}
  1. 使用TreeMap实现:
import java.util.Map;
import java.util.TreeMap;

public class Main {
    public static void main(String[] args) {
        Map<String, String> map = new TreeMap<>();
        map.put("key1", "value1");
        map.put("key2", "value2");

        // 尝试插入一个不存在的键值对
        String newValue = "value3";
        String existingValue = map.putIfAbsent("key1", newValue);

        if (existingValue == null) {
            System.out.println("Key1 was not present, and has been inserted with value: " + newValue);
        } else {
            System.out.println("Key1 was already present with value: " + existingValue);
        }
    }
}

在这两个示例中,我们首先创建了一个映射(HashMapTreeMap),然后尝试插入一个不存在的键值对。putIfAbsent方法返回映射中已存在的键对应的值(如果存在),否则返回null。根据返回值,我们可以判断键是否已经存在于映射中。

未经允许不得转载:便宜VPS测评 » Java ConcurrentHashMap putIfAbsent 方法详解及实现示例