java判断map是否有key的常用方法
作者:悟能不能悟
这篇文章主要为大家详细介绍了java中判断map是否有key的常用方法,文中的示例代码讲解详细,具有一定的借鉴价值,有需要的小伙伴可以了解
在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的方式。
到此这篇关于java判断map是否有key的常用方法的文章就介绍到这了,更多相关java map判断是否有key内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
