直接用get()方法根据key获取value,key不存在或映射为null均返回null;需区分时配合containsKey(),推荐Java 8+的getOrDefault();自定义key须重写equals和hashCode。

直接用 get() 方法即可,传入 key,返回对应的 value。如果 key 不存在,返回 null(对于非 null 值的 key)。
基本用法:调用 get(key)
HashMap 提供了 get(Object key) 方法,根据 key 查找并返回关联的 value:
- key 存在且映射到某个值 → 返回该 value
- key 不存在,或 key 映射到
null→ 都返回null - 因此,仅靠
get()返回null无法区分“没找到”和“值为 null”
安全获取:先检查 key 是否存在
若需明确判断 key 是否存在(尤其当 value 可能为 null),建议配合 containsKey():
-
map.containsKey(key)→ 确认 key 是否在 map 中 - 再调用
map.get(key)获取值,逻辑更清晰 - 例如:if (map.containsKey("name")) { String val = map.get("name"); }
Java 8+ 推荐:使用 getOrDefault()
避免显式判空,用 getOrDefault(key, defaultValue) 更简洁:
立即学习“Java免费学习笔记(深入)”;
- key 存在 → 返回对应 value
- key 不存在 → 返回你指定的默认值(如空字符串、0、new ArrayList() 等)
- 例如:String name = map.getOrDefault("name", "unknown");
注意 key 的 equals 和 hashCode
get() 能正确工作,依赖 key 正确重写了 equals() 和 hashCode():
- 使用自定义对象作 key 时,必须重写这两个方法,否则可能查不到值
- String、Integer 等 JDK 类已内置实现,可直接放心使用
- key 在插入后被修改(且影响 hashCode/equals)→ 可能导致 get 失效


















