hashmap,java8,空/空检查

时间:2018-07-31 18:33:16

标签: java java-8

我的地图如下:

private Map<String, Object> map = new HashMap<>();

此映射包含其键值对,如下:

myKey-> value

value -> Another value

如上所示,此映射要么为空,要么具有包含以上键值的键值对(myKeyvaluevalue作为下一个元素的键)。

我要检查这张地图:

是否为空

具有myKeyvalue,如果是,则具有 Another value 。我的代码有这么多if else,所以想避免以更好的方式查找Another value

  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; 
    }

2 个答案:

答案 0 :(得分:3)

您可以使用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));

答案 1 :(得分:1)

我猜您正在寻找的是对象的有序列表。为什么不只保留一个列表?