应使用 containskey() 方法判断键是否存在,因其专为此设计且可靠;get(key) != null 不可行,因 hashmap 允许 value 为 null,无法区分键不存在与值为 null 两种情况。

用 containsKey() 方法判断即可,它专为这事设计,返回 true 或 false,简单直接。
containsKey() 是最可靠的方式
不要依赖 get(key) != null 来判断键是否存在——因为 HashMap 允许 value 为 null。比如:
-
map.put("x", null)后,map.get("x")返回null,但键"x"确实存在; -
map.get("y")也返回null,但这时是键"y"根本不存在。
仅靠 get() 无法区分这两种情况,而 containsKey("x") 一定返回 true,containsKey("y") 一定返回 false。
调用方式很简单
语法统一: map.containsKey(key),参数可以是任意对象(包括 null,前提是 map 允许)。
- 键类型需与 Map 声明一致(如
HashMap<string integer></string>中传String); - 内部通过
key.equals()比较,所以自定义类作 key 时必须重写equals()和hashCode(); - 时间复杂度平均为 O(1),查找高效。
常见使用场景示例
实际编码中常用于安全取值或条件分支:
- 先检查再取值:
if (map.containsKey("user_id")) { int id = map.get("user_id"); ... } - 避免空指针:
String name = map.containsKey("name") ? map.get("name") : "default"; - 配合默认值逻辑:
int score = map.containsKey("score") ? map.get("score") : 0;
不复杂但容易忽略——只要记住:查键是否存在,就用 containsKey(),别绕路。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











