从hashmap检索值并返回

时间:2018-12-24 09:13:15

标签: java java-8 hashmap

如何在Java-8中为以下逻辑编写代码,这是我的代码

private static Integer getTheInteger() {
    Map<String, Integer> items = new HashMap<>();
    items.put("A", 10);
    items.put("B", 20);
    items.put("C", 30);
    items.put("D", 40);
    items.put("E", 50);
    items.put("F", 60);

    for (Map.Entry<String, Integer> entry : items.entrySet()) {
        if(entry.getKey().equals("E")) {
            return entry.getValue();
        }
    }
    return 0;
}

3 个答案:

答案 0 :(得分:4)

理想情况下,您只需要一个get。另外,要处理默认情况(此处为return 0),请像下面这样使用Map.getOrDefault

return items.getOrDefault("E", 0);

答案 1 :(得分:1)

您不需要为此而创建循环,也不需要任何Java 8功能。

return items.get("E");

或者,当键不在0中时处理Map值:

return items.containsKey("E") ? items.get("E") : 0;

答案 2 :(得分:1)

如果您要为此使用流,它将看起来像:

return items.entrySet()
            .stream()
            .filter(s -> "E".equals(s.getKey()))
            .findFirst().map(Map.Entry::getValue)
            .orElse(0);

,但是更好的方法是不迭代映射条目,而使用get()并根据结果提供默认值。

return Optional.ofNullable(items.get("E")).orElse(0);