news 2026/4/16 8:58:52

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/11 21:07:34

Requestium - 将Requests和Selenium合并在一起的自动化测试工具

Requests 是 Python 的第三方库&#xff0c;主要用于发送 http 请求&#xff0c;常用于接口自动化测试等。 Selenium 是一个用于 Web 应用程序的自动化测试工具。Selenium 测试直接运行在浏览器中&#xff0c;就像真正的用户在操作一样。 本篇介绍一款将 Requests 和 Seleniu…

作者头像 李华
网站建设 2026/4/12 15:29:58

AI 助力编程:三大算法题的代码生成与测试全流程记录

问题 1&#xff1a;汉诺塔python运行def hanoi(n, start, helper, target):if n 1:print(f"移动圆盘1从柱子{start}到柱子{target}")returnhanoi(n-1, start, target, helper)print(f"移动圆盘{n}从柱子{start}到柱子{target}")hanoi(n-1, helper, start,…

作者头像 李华
网站建设 2026/4/15 4:09:41

【课程设计/毕业设计】基于java的个人健康管理系统的设计与实现健康建议和健康管理建议【附源码、数据库、万字文档】

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

作者头像 李华
网站建设 2026/4/12 16:33:18

告别大模型幻觉!RAG检索增强生成技术全解析,程序员必看,建议收藏

RAG&#xff08;检索增强生成&#xff09;技术通过先检索私有知识库再生成答案的方式&#xff0c;解决了大模型不了解私有数据和产生幻觉的问题。文章详细介绍了RAG的完整流程&#xff1a;文档整理、数据切片、向量化、存储、检索、重排和生成&#xff0c;并通过智能客服实例提…

作者头像 李华
网站建设 2026/4/15 14:23:20

python 创建虚拟环境到底在干啥?

python3 -m venv venv 是创建 Python 虚拟环境的命令&#xff0c;让我详细解释&#xff1a; 命令解析 python3 -m venv venv 由三部分组成&#xff1a; python3 - 使用 Python 3 解释器-m venv - 调用 venv 模块&#xff08;Python 内置的虚拟环境工具&#xff09;venv - 虚…

作者头像 李华