在 java 中检查 hashmap 是否为空应优先调用 isempty() 方法,其时间复杂度为 o(1) 且语义清晰;若 map 可能为 null,需先判空,如 map != null && map.isempty()。

在 Java 中检查 HashMap 是否为空,最直接、高效的方式是调用其 isEmpty() 方法。
使用 isEmpty() 方法(推荐)
这是标准且语义清晰的做法,内部仅判断 size == 0,时间复杂度为 O(1),不遍历元素,性能最优。
- 返回
true表示 map 中没有键值对; - 返回
false表示至少有一个键值对存在。
示例:
MapSystem.out.println(map.isEmpty()); // true
map.put("a", 1);
System.out.println(map.isEmpty()); // false
检查 size() == 0
效果等价于 isEmpty(),因为 isEmpty() 底层就是基于 size() 实现的。但语义不如 isEmpty() 明确,可读性稍弱。
- 不建议用于条件判断逻辑,除非有特殊兼容需求;
- 避免写成
map.size() == 0,应优先用map.isEmpty()。
注意:不要用 == null 判断
isEmpty() 前必须确保对象非 null,否则会抛 NullPointerException。
- 如果 map 可能为
null,需先判空:map != null && map.isEmpty(); - 也可用
Objects.nonNull(map) && map.isEmpty()提高可读性。
不推荐的写法
例如遍历 keySet 或 entrySet 后判断是否为空——效率低(O(n))、冗余、易出错,完全没必要。
- 不要写
map.keySet().isEmpty():多一层包装,无实际好处; - 不要用
map.entrySet().size() == 0:绕路且低效。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











