直接调用get()方法可获取键对应的值,键存在但值为null或键不存在均返回null;建议用containsKey()配合get()或getOrDefault()避免歧义,并确保key正确重写equals()和hashCode()。

直接调用 get() 方法即可,传入键(key)作为参数,返回对应的值(value),如果键不存在则返回 null。
基本用法:使用 get() 获取值
HashMap 提供了 get(Object key) 方法,根据键查找并返回关联的值。该方法时间复杂度平均为 O(1)。
- 如果键存在且映射了非 null 值,返回该值;
- 如果键存在但值为
null,也返回null(注意:这和“键不存在”无法区分); - 如果键完全不存在,同样返回
null。
安全获取值:避免 null 判断歧义
由于 get() 对“键不存在”和“键存在但值为 null”都返回 null,若业务中允许存 null 值,建议改用 containsKey() 配合 get() 显式判断:
if (map.containsKey("name")) { String value = map.get("name"); }- Java 8+ 可用
getOrDefault(key, defaultValue)提供默认值,更简洁安全。
注意 key 的 equals 和 hashCode 必须一致
get() 能正确工作依赖于键对象正确重写了 equals() 和 hashCode() 方法。例如自定义类作 key 时:
立即学习“Java免费学习笔记(深入)”;
- 未重写会导致即使逻辑相等的两个对象也无法查到值;
- 只重写
equals()不重写hashCode()会破坏哈希表结构,可能查不到或查错。
示例代码
(简单直观,可直接运行)
HashMap<String, Integer> map = new HashMap<>();
map.put("apple", 5);
map.put("banana", 3);
Integer count = map.get("apple"); // 返回 5
Integer missing = map.get("orange"); // 返回 null
Integer fallback = map.getOrDefault("grape", 0); // 返回 0


















