news 2026/4/20 22:34:35

java map判断是否有key,get(key)+x,否则put(key,x)的新写法

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
java map判断是否有key,get(key)+x,否则put(key,x)的新写法

在Java中,可以使用以下几种方式判断Map中是否有key,并进行相应操作:

1. 使用containsKey()方法(最直观)

Map<String, Integer> map = new HashMap<>(); // 方法1:先判断是否存在 if (map.containsKey(key)) { map.put(key, map.get(key) + x); } else { map.put(key, x); }

2. 使用get()方法判断null(推荐)

Map<String, Integer> map = new HashMap<>(); // 方法2:通过get()返回值判断 Integer value = map.get(key); if (value != null) { map.put(key, value + x); } else { map.put(key, x); }

3. 使用merge()方法(Java 8+ 最简洁)

Map<String, Integer> map = new HashMap<>(); // 方法3:使用merge方法(推荐) map.merge(key, x, (oldValue, newValue) -> oldValue + newValue); // 或者使用Integer::sum map.merge(key, x, Integer::sum);

4. 使用getOrDefault()方法(Java 8+)

Map<String, Integer> map = new HashMap<>(); // 方法4:getOrDefault获取当前值 int currentValue = map.getOrDefault(key, 0); map.put(key, currentValue + x);

5. 使用compute()方法(Java 8+)

Map<String, Integer> map = new HashMap<>(); // 方法5:使用compute方法 map.compute(key, (k, v) -> v == null ? x : v + x);

性能对比和推荐

方法

优点

缺点

containsKey()

直观易懂,兼容性好

需要两次查找(containsKey + get)

get()判断null

一次查找,性能较好

需要处理null值

merge()

代码简洁,线程安全(在ConcurrentHashMap中)

Java 8+ 才支持

getOrDefault()

代码简洁

需要额外变量

compute()

功能强大

代码可读性稍差

推荐:​ 如果使用Java 8+,优先使用merge()方法,因为它最简洁且性能好。如果使用更早版本,推荐使用get()判断null的方式。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 15:35:52

四维轻云——让每一处空间都数据可视,让每一份资产都价值可期

四维轻云平台通过三大核心能力的有机整合&#xff0c;为资产管理行业构建了真正的“数字空间智能中枢”&#xff1a;1.全要素数字化&#xff1a;将物理空间转化为可计算、可分析、可操作的数字资产&#xff1b;2.全流程可视化&#xff1a;从招商租赁到运维管理&#xff0c;所有…

作者头像 李华
网站建设 2026/4/19 1:06:40

2025年OpenTiny年度人气贡献者评选正式开始

前言 携手共创&#xff0c;致敬不凡&#xff01; 2025年&#xff0c;OpenTiny持续在前端开源领域扎根&#xff0c;每一位开发者都是推动项目共同前行的宝贵力量。从bug修复&#xff0c;到技术探讨&#xff1b;从参与开源活动&#xff0c;到输出技术文章&#xff1b;从使用项目…

作者头像 李华
网站建设 2026/4/18 15:11:39

手把手教你安装VS Code

1.搜索并打开官网&#xff1b;2.点击红框内的下载按钮&#xff1b;3.稍等一会就会自动下载&#xff0c;下载完成后打开文件&#xff1b;4.同意协议并下一步&#xff1b;5.强烈建议使用默认路径&#xff0c;直接点击下一步&#xff1b;6.下一步7.建议全部勾选&#xff0c;下一步…

作者头像 李华
网站建设 2026/4/17 23:48:51

计算机Java毕设实战-基于springboot的图书管理系统基于springboot的智慧图书管理系统【完整源码+LW+部署说明+演示视频,全bao一条龙等】

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华
网站建设 2026/4/19 22:11:57

国产操作系统学习心得

好的&#xff0c;以下是我的国产操作系统学习心得&#xff0c;结合文字说明和关键功能截图&#xff08;注&#xff1a;此处用文字描述图片内容&#xff0c;实际使用时可替换为真实截图&#xff09;&#xff1a;一、初体验&#xff1a;安装与界面首次安装国产操作系统&#xff0…

作者头像 李华