如果HashMap Java存在,它将获得值

时间:2016-11-19 14:11:26

标签: java hashmap

我希望从HasMap获取一个值,但有时候该值不存在所以我这样做了:

int var = 0;
if (hashMapHouse.containsKey("home1") {
    var = hashMapHouse.get("houme1");
}
if(var==0) //do something
else //do something else

我的问题是:是否可以调用hashMap以获取值并测试值是否存在?

3 个答案:

答案 0 :(得分:11)

在Java 8中,您可以使用getOrDefault方法:

int var = hashMapHouse.getOrDefault("home1", 0);

这是最干净的解决方案,您可以在单行中获取密钥的值(如果存在),或者使用预定义的默认值来表示它不存在 - 0在这种情况下。

答案 1 :(得分:2)

当然

Integer houme = hashMapHouse.get("houme1");

if (null == houme ) {
    // not exists 
} else {
    // exists 
} 

答案 2 :(得分:1)

来自docs

  

返回值null不一定表示映射不包含键的映射;地图也可能将键明确映射为null。 containsKey操作可用于区分这两种情况。

如果您没有使用null作为值,那么您可以使用get()方法一次,并执行以下操作:

Integer var = hashMap.get(key);
if (var != null) {
    // value exists
}