java - hashmap、java8、null/empty 检查

标签 java java-8

我有一张 map ,如下:

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

该映射包含其键值对:

myKey->

-> 另一个值

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

我想检查这张 map 是否:

是否为空

myKeyvalue,如果是,则有另一个值。我的代码有太多 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/

相关文章:

Java 8 Stream API如何重用自定义方法

java - JAXRS + JerseyTest 测试 REST 服务

java - 将基于服务器的产品的 Java 开发迁移到 64 位有什么主要优势吗?

java - 使用流在列表列表中查找对象

Java:DTO 集合内值的总和

java - 如何从泛型列表转换为 Java 8 中的对象列表?

java - 使用流将对象列表转换为从 toString 方法获取的字符串

java - 同一方法的两个版本仅在其签名(方法名称和 'throws' 属性)上有所不同是否被认为是糟糕的设计?

对于大数的 java.lang.NumberFormatException

Java Swing JTextArea : Problem displaying Myanmar Text