putIfAbsent()
时间: 2023-12-21 18:04:14 浏览: 83
putIfAbsent()是Java中的一个ConcurrentHashMap类的方法,用于将指定的键值对添加到Map中,如果该键已经存在,则不会添加。如果该键不存在,则添加该键值对并返回null。putIfAbsent()方法的语法如下:
```java
V putIfAbsent(K key, V value)
```
其中,key表示要添加的键,value表示要添加的值。如果key已经存在,则返回与key关联的旧值;如果key不存在,则返回null。
putIfAbsent()方法还有一个重载版本,它接受一个Boolean类型的onlyIfAbsent参数。如果onlyIfAbsent为true,则只有在key不存在时才添加键值对;如果onlyIfAbsent为false,则无论key是否存在,都会添加键值对。该方法的语法如下:
```java
V putIfAbsent(K key, V value, boolean onlyIfAbsent)
```
例如,假设我们有一个ConcurrentHashMap对象map,我们可以使用putIfAbsent()方法将一个键值对添加到map中,如下所示:
```java
ConcurrentHashMap<String, Integer> map = new ConcurrentHashMap<>();
Integer oldValue = map.putIfAbsent("key", 1);
if (oldValue != null) {
System.out.println("key已经存在,旧值为:" + oldValue);
} else {
System.out.println("key不存在,已添加键值对");
}
```
在上面的例子中,我们首先创建了一个ConcurrentHashMap对象map,并使用putIfAbsent()方法将键为"key",值为1的键值对添加到map中。由于该键在map中不存在,因此putIfAbsent()方法返回null,并输出"key不存在,已添加键值对"。如果我们再次调用putIfAbsent()方法添加相同的键值对,由于该键已经存在,putIfAbsent()方法将返回与该键关联的旧值,并输出"key已经存在,旧值为:"。
阅读全文