我有一张 map ,如下:
private Map<String, Object> map = new HashMap<>();
该映射包含其键值对:
键 值
myKey
-> 值
值
-> 另一个值
如上所示,该映射要么为空,要么具有包含上述键值的键值对(myKey
、value
和 value
作为下一个元素的关键)。
我想检查这张 map 是否:
是否为空
有myKey
和value
,如果是,则有另一个值
。我的代码有太多 if
else
所以想用更好的方法来避免找到另一个值
if (map.isEmpty()) {
if (map.get(myKey) != null || StringUtils.isNotBlank(map).get(myKey).toString())) {
String nextKey = map.get(myKey).toString();
if (StringUtils.isNotBlank(nextKey) && map.get(nextKey) != null
&& StringUtils.isNotBlank(map.get(nextKey).toString())) {
String finalValue = map.get(nextKey).toString();
}
}
} else {
flag = true;
}
最佳答案
您可以使用Map的containsKey
方法来避免多个if
Map<String,String> map = new HashMap<>();
if(map.containsKey(myKey) && StringUtils.isNotBlank(map.get(myKey))
&& map.containsKey(map.get(myKey))) {
flag=false;
} else {
flag=true
}
上述代码的更简化版本是
flag = StringUtils.isBlank(map.get(myKey)) || !map.containsKey(map.get(myKey));
关于java - hashmap、java8、null/empty 检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51619928/