news 2026/5/1 9:56:26

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/5/1 1:05:39

Airtest常用API介绍

今天就继续给大家介绍一下Airtest框架常用的核心API用法&#xff0c;这也是熟悉使用Airtest框架的必备手册之一。 (一&#xff09;官方文档 官方文档 https://airtest.doc.io.netease.com/IDEdocs/airtest_framework/1_airtest_api/ &#xff08;二&#xff09;核心API介绍…

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

国产突围与进口坚守:解读金相显微镜十大品牌新变局

金相显微镜是一种专门用于观察和分析金属及其合金微观结构的显微镜。它通过高倍放大的光学系统&#xff0c;帮助用户研究材料的金相组织、晶粒大小、相分布、缺陷&#xff08;如裂纹、气孔&#xff09;以及其它微观特征。目前行业内公认的国、内外一线/主流品牌大致集中在以下这…

作者头像 李华
网站建设 2026/5/1 8:44:01

医疗大模型LoRA微调实战:我用40行代码让AI学会看病

目录 &#x1f3af; 摘要 一、技术原理&#xff1a;为什么LoRA是医疗AI的救命稻草&#xff1f; 1.1 架构设计理念&#xff1a;别动基座&#xff0c;只加"外挂" 1.2 核心算法实现&#xff1a;矩阵拆解的魔法 1.3 性能特性分析&#xff1a;数据不说谎 二、实战部…

作者头像 李华
网站建设 2026/4/17 9:04:46

句句都不黄,[特殊字符]句句都很撩(贼上头)

&#x1f35a; 干饭要趁热&#xff0c;爱我要趁现在&#xff01;&#x1f964; 想喝奶茶三分糖&#xff0c;想你甜度超标啦&#xff5e;&#x1f6b6; 别问我去哪&#xff0c;心早就跑你那儿啦&#xff01;⏰ 闹钟叫不醒我&#xff0c;你一句想我就醒&#xff01;&#x1f4b0;…

作者头像 李华