Java 8 流 API :How to handle null value in Map

标签 java dictionary filter java-stream

我有一个 Map 类型的数组列表。我想从列表中过滤掉空值并找到最大值和最小值。除了空值外,该程序运行良好。

ArrayList<Map<String, Float>> elements = new ArrayList<Map<String, Float>>();
Map<String, Float> element = new HashMap<String, Float>();
element.put("a", (float) 1.22);
element.put("b", (float) 1.33);
element.put("c", (float) 1.52);
element.put("d", (float) 1.452);
element.put("e", (float) 1.452);

Map<String, Float> element2 = new HashMap<String, Float>();
element2.put("a", (float) 1.2332);
element2.put("b", (float) 1.242);
element2.put("c", (float) 1.552);
element2.put("d", (float) 15.33);
element2.put("e",null);

elements.add(element);
elements.add(element1);
elements.add(element2);

System.out.println("Initial Mappings are: " + elements);
Map<String, Float> min = elements.stream() 
            .flatMap(m -> m.entrySet().stream())
            .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, Math::min));

System.out.println(min);

最佳答案

向链中添加过滤器。

Map<String, Float> min = elements.stream()
            .flatMap(m -> m.entrySet().stream())
            .filter(entry -> entry.getValue() != null)
            .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, Math::min));

关于Java 8 流 API :How to handle null value in Map,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59463685/

相关文章:

MySQL 对连接表应用过滤器

java - 构建动态 Android 布局

python - 如何从字典中获取随机值?

python - 如何从Python集合中有效地循环正则表达式搜索

python - 将多个元组添加到单个字典键而不合并元组?

Python 数据框;使用多个过滤器更改列值时遇到问题

angularjs - 如何在 ngClass 中使用 AngularJS 过滤器?

Java 8。泛型。使用原始类型。意外的类型转换

java - 如何使用它的相对路径访问tomcat服务器中的文件夹?

java - 带有 Voldemort jar 的 Maven 存储库