有一个java实体列表 实体中包含两个个字段String类型的id Integr类型的num 共有4条数据 id为小明的 num 为2 另一条num为4 id为小红的 num 为3 另一个num为6要求用Stream流统计小明与小红的num和 并返回 map key为id value为计算后的和
可以使用Java 8提供的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中。
原文地址: https://www.cveoy.top/t/topic/g1r2 著作权归作者所有。请勿转载和采集!