ConcurrentHashMap中的putIfAbsent方法的使用以及返回值的含义
2024-08-25 16:12:10
public V putIfAbsent(@NotNull K key,
@NotNull V value)
putIfAbsent方法主要是在向ConcurrentHashMap中添加键—值对的时候,它会先判断该键值对是否已经存在。
如果不存在(新的entry),那么会向map中添加该键值对,并返回null。
如果已经存在,那么不会覆盖已有的值,直接返回已经存在的值。
相当于:
V v = map.get(key);
if (v == null)
v = map.put(key, value);
return v;
返回值:
(1)如果是新的记录,那么会向map中添加该键值对,并返回null。
(2)如果已经存在,那么不会覆盖已有的值,直接返回已经存在的值。
测试代码:
package com.tao.client;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
/**
* Created by michael on 17-7-13.
*/
public class Test {
public static void main(String[] args) {
//测试一下currentHashMap.putIfAbsent()
Map<Long, String> clientMap = new ConcurrentHashMap<>();
System.out.println("首先打印空的clientMap");
System.out.println("clientMap: " + clientMap);
System.out.println();
//在空的clientMap中添加一个新的记录
System.out.println("在空的clientMap中添加一个新的记录");
System.out.println("添加之前的clientMap: " + clientMap);
long netId = 1234567L;
String str1 = "michael";
String result = clientMap.putIfAbsent(netId, str1);
System.out.println("添加之后的clientMap: " + clientMap);
System.out.println("查看返回值result: " + result);
System.out.println();
//重复添加
System.out.println("重复添加上一次的记录");
System.out.println("添加之前的clientMap: " + clientMap);
String result2 = clientMap.putIfAbsent(netId, str1);
System.out.println("添加之后的clientMap: " + clientMap);
System.out.println("查看返回值result: " + result2);
System.out.println();
}
}
输出结果:
最新文章
- WebView随学笔记
- jmeter jdbc request使用详解
- BZOJ 2466: [中山市选2009]树
- [Java] 解决spring的xml标签内不能自由增加说明的难题,方便调试、部署时进行批量屏蔽
- ajax跨域请求的解决方案
- SQLServer2012分离出的数据库存放路径
- iOS军火库-好用的ActionSheetView
- SKAction类
- unity3d实现Socket
- ESFramework 4.0 性能测试
- spring(一) IOC讲解
- web 10
- Atitit 3种类型的公司:运营驱动型;产品驱动型; 技术驱动型。
- 复旦大学2016--2017学年第二学期(16级)高等代数II期末考试第六大题解答
- OCM_第十六天课程:Section7 &mdash;》GI 及 ASM 安装配置 _安装 GRID 软件/创建和管理 ASM 磁盘组/创建和管理 ASM 实例
- mysql监控利器mysqlmtop部署安装
- Eclipse C++,Cygwin 64,gcov,lcov 单体&;覆盖率测试环境搭建笔记
- class 3 求数组中的最大值(单元测试)
- 基于C#的机器学习--颜色混合-自组织映射和弹性神经网络
- Django基本目录详解