我遇到了来自HashMap的get(Object key)方法的问题。
hm.put("597068",o1);
hm.put("ws-5896",o2);
当我尝试以下代码行时,它会提供正确的对象:
hm.get("597068");
但是当我试图获得Ws-5896时,它会给出Null。为什么呢?
hm.get("ws-5896");
更新 HashMap声明:
private static HashMap<String,Ort> hm = new HashMap<String,Ort>();
答案 0 :(得分:1)
不幸的是,HashMap在执行HashMap.get()时不会区分空值和条目。
返回指定键映射到的值,如果是,则返回null 此地图不包含密钥的映射。
您是否使用HashMap.containsKey()检查了密钥是否包含在地图中?
返回值null不一定表示地图 不包含密钥的映射;它也有可能是地图 显式地将键映射为null。可以使用containsKey操作 区分这两种情况。
答案 1 :(得分:-1)
将hm.keySet()打印到屏幕上,您将看到代码失败的位置。我打赌你正在寻找“Ws-5896”键,HashMap 区分大小写。