java中的putifabsent如何使用
时间: 2024-03-05 19:47:51 浏览: 75
Java并发程序设计教程.pdf
`putIfAbsent()` 方法是 Java 8 新增加到 `ConcurrentMap` 接口中的方法,它的作用是向 Map 中添加一个键值对,但是只有在该键不存在时才添加,如果该键已经存在,则不做任何操作。
`putIfAbsent()` 方法的使用非常简单,其语法如下:
```java
V putIfAbsent(K key, V value)
```
其中,`key` 表示要添加的键,`value` 表示要添加的值。如果 Map 中已经包含了该键,则返回对应的值;如果 Map 中不包含该键,则添加该键值对,返回 `null`。
例如,以下代码演示了如何使用 `putIfAbsent()` 方法向 Map 中添加一个键值对:
```java
Map<String, Integer> map = new ConcurrentHashMap<>();
map.putIfAbsent("one", 1);
map.putIfAbsent("two", 2);
map.putIfAbsent("one", 3);
System.out.println(map);
```
输出结果为:
```
{two=2, one=1}
```
可以看到,由于 Map 中已经包含了键为 `"one"` 的键值对,因此第三个 `putIfAbsent()` 方法并没有向 Map 中添加任何键值对,而是返回了键为 `"one"` 的旧值 `1`。
需要注意的是,`putIfAbsent()` 方法是线程安全的,可以在多线程环境下使用。如果多个线程同时调用 `putIfAbsent()` 方法,只有一个线程能够成功地向 Map 中添加键值对,其他线程则会返回已经存在的值。
阅读全文