putIfAbsent()
方法是 Map
接口的一个方法,它用于向 Map
中添加一个键值对,前提是这个键尚未存在于 Map
中。如果键已经存在,putIfAbsent()
方法不会修改 Map
,也不会返回任何值。只有当键不存在时,它才会将指定的键值对添加到 Map
中,并返回之前与该键关联的值(如果有的话)。如果键不存在,则返回 null
。
这个方法非常有用,特别是在不希望覆盖现有键值对的情况下,或者在需要检查键是否已经存在于 Map
中时。
以下是 putIfAbsent()
方法的签名和示例:
V putIfAbsent(K key, V value)
K
是键的类型。V
是值的类型。key
是要添加或检查的键。value
是要与键关联的值。
示例代码:
Map<String, Integer> map = new HashMap<>();
map.put("apple", 1);
map.put("banana", 2);
// 尝试将 "apple" 添加到 map 中,但是因为 "apple" 已经存在,不会添加,返回 1
Integer existingValue = map.putIfAbsent("apple", 3);
System.out.println(existingValue); // 输出: 1
// 尝试将 "cherry" 添加到 map 中,因为 "cherry" 不存在,添加成功,返回 null
Integer newValue = map.putIfAbsent("cherry", 3);
System.out.println(newValue); // 输出: null
首先创建了一个 HashMap
并添加了两个键值对。然后,尝试将 “apple” 添加到 map
中,但由于它已经存在,putIfAbsent()
返回了之前与 “apple” 关联的值(即 1),而没有修改 map
。接着,我们尝试添加 “cherry”,由于它不存在,所以添加成功,putIfAbsent()
返回 null
。