putIfAbsent
是Java中的一个方法,用于在映射(Map)中插入一个键值对。如果映射中不存在该键,则插入该键值对;否则,不执行任何操作。这个方法属于java.util.Map
接口,并提供了多种实现,如HashMap
、TreeMap
等。
以下是使用putIfAbsent
方法的一些示例:
- 使用
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);
}
}
}
- 使用
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);
}
}
}
在这两个示例中,我们首先创建了一个映射(HashMap
或TreeMap
),然后尝试插入一个不存在的键值对。putIfAbsent
方法返回映射中已存在的键对应的值(如果存在),否则返回null
。根据返回值,我们可以判断键是否已经存在于映射中。