Map putIfAbsent
时间: 2025-02-24 15:31:15 浏览: 45
`putIfAbsent` 是 Java 中 `Map` 接口提供的一个原子操作方法,其作用是在指定的键不存在于映射中(或存在但对应的值为 null)的情况下,将该键与给定的值关联起来。
### 使用场景
当你需要向 map 中添加新的 key-value 对,但是又想避免覆盖已有的数据时,就可以考虑使用这个方法。这可以简化代码逻辑,并且保证线程安全的操作(特别是在并发环境下使用支持此特性的实现如 ConcurrentHashMap 类)。
### 示例代码
```java
import java.util.HashMap;
import java.util.Map;
public class Main {
public static void main(String[] args) {
// 创建并初始化 HashMap
Map<String, String> map = new HashMap<>();
// 添加元素到map里
map.put("apple", "苹果");
System.out.println(map); // 输出: {apple=苹果}
// 尝试插入相同的key (如果不存在)
String result1 = map.putIfAbsent("apple", "红苹果");
System.out.println(result1); // 输出现有value: 苹果
System.out.println(map.get("apple")); // 没有改变原value
// 插入新key-value对
String result2 = map.putIfAbsent("banana", "香蕉");
System.out.println(result2 == null); // true 因为之前无此条目
System.out.println(map.get("banana")); // 香蕉
}
}
```
在这个例子中我们看到 `"apple"` 已经存在于 map 当中了所以尝试通过 `putIfAbsent()` 设置它的值并没有成功;而 `"banana"` 则顺利地被加入了进去。
--
阅读全文
相关推荐
















