从Java 8的地图列表中获取字符串

Michu93

我有:List<Map<String, String>> countries并且我由此能够获得我感兴趣的价值:

    String value = "";
    for (int i = 0; i < countries.size(); i++) {
        Map<String, String> map = countries.get(i);
        if (map.containsValue(country)) {
            value = map.get(COUNTRY_NAME);
        }
    }
    return value;

因此,通常来说-如果地图上的国家/地区是我感兴趣的国家,那么我会以key为COUNTRY_NAME的方式取值。

如何将其转换为流?我这样尝试:

for (Map<String, String> m : countries) {
        description = String.valueOf(m.entrySet()
                .stream()
                .filter(map -> map.getValue().equals(country))
                .findFirst());
        }

但首先它不起作用,其次我仍用于每个循环。

埃克拉夫亚

你需要的滤波器图,如果它containsValue然后使用转换数据.map()再经过.findFirst()使用.orElse(),如果没有找到返回默认值。

String value = countries.stream()
                        .filter(m -> m.containsValue(country))
                        .map(m -> m.get(COUNTRY_NAME))
                        .findFirst()
                        .orElse("");

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章