Java Stream API 统计实体列表中相同 ID 的数值之和
使用 Java 8 提供的 Stream API 可以方便地统计实体列表中相同 ID 的数值之和。
假设有一个实体列表,每个实体包含两个字段:String 类型的 id 和 Integer 类型的 num。现在需要统计列表中所有名为'小明' 和 '小红' 的实体的 num 之和。
以下代码示例展示了如何使用 Stream API 实现该功能:
List<Entity> list = new ArrayList<>();
list.add(new Entity('小明', 2));
list.add(new Entity('小红', 3));
list.add(new Entity('小明', 4));
list.add(new Entity('小红', 6));
Map<String, Integer> result = list.stream()
.collect(Collectors.groupingBy(Entity::getId, Collectors.summingInt(Entity::getNum)));
System.out.println(result); // 输出:{'小明'=6, '小红'=9}
首先将实体列表转换为 Stream,然后使用 groupingBy 方法将实体按照 id 进行分组,再使用 summingInt 方法将每组的 num 求和,最后将结果收集到一个 Map 中。
该代码示例展示了 Stream API 的强大功能,它可以方便地对数据进行分组、聚合、统计等操作,从而简化代码并提高效率。
原文地址: https://www.cveoy.top/t/topic/ozSx 著作权归作者所有。请勿转载和采集!