Java putIfAbsent
时间: 2025-02-18 21:32:17 浏览: 56
### Java `putIfAbsent` 方法使用说明
#### 方法概述
`putIfAbsent()` 是 Java 中 `HashMap` 类的一个重要方法,用于向哈希表中插入键值对。如果指定的键已经存在,则不会更新其对应的值;只有当该键不存在时才会插入新的键值对[^1]。
#### 参数与返回值
- **参数**: 接受两个泛型类型的参数 `(K key, V value)`,分别代表要插入的键和值。
- **返回值**: 如果给定键之前未被映射到任何值(即它是新条目),则返回 `null`; 否则返回先前关联于该键的值[^2]。
#### 示例代码展示基本用法
下面是一个简单的例子展示了如何利用 `putIfAbsent()` 来安全地添加元素而不意外覆盖已有数据:
```java
import java.util.HashMap;
import java.util.Map;
public class PutIfAbsentExample {
public static void main(String[] args) {
Map<String, String> map = new HashMap<>();
// 初始化一些数据
map.put("A", "Apple");
// 添加一个新的键值对
map.putIfAbsent("B", "Banana");
System.out.println(map); // 输出:{A=Apple, B=Banana}
// 尝试替换已有的键"A"
map.putIfAbsent("A", "Avocado");
System.out.println(map); // 输出仍然是:{A=Apple, B=Banana}, A 的值没有改变
// 对于不存在的键尝试设置值
Object result = map.putIfAbsent("C", "Cherry");
System.out.println(result == null ? "Key C was not present." : "Previous Value:" + result);
System.out.println(map); // 输出:{A=Apple, B=Banana, C=Cherry}
}
}
```
这段程序首先创建了一个包含单个元素 (`"A"` -> `"Apple"`) 的 `HashMap`. 随后通过调用 `putIfAbsent()` 成功加入了另一个不同的项(`"B"`->`"Banana"`). 当再次试图修改同一个键 `"A"` 所指向的内容时并没有成功,因为这个键已经在集合里有了定义.
最后还演示了对于完全不存在的新键 `"C"` 调用 `putIfAbsent()`, 它正常工作并返回 `null`.
阅读全文
相关推荐


















