我希望从HasMap获取一个值,但有时候该值不存在所以我这样做了:
int var = 0;
if (hashMapHouse.containsKey("home1") {
var = hashMapHouse.get("houme1");
}
if(var==0) //do something
else //do something else
我的问题是:是否可以调用hashMap以获取值并测试值是否存在?
答案 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
}