java - 如何通过某种类型的变量使用流()求和
问题描述
我正在尝试将同一团队的所有积分相加并返回一个字符串列表(团队:totalPoints)
public class Player {
String name;
int team;
int points;
}
List <Player> player= new ArrayList<>();
player.add(new Player("Michael",1,10));
player.add(new Player("Mike",2,15));
player.add(new Player("Tom",1,7));
player.add(new Player("Marty",2,9));
我想收到一个List<String
>,其中:"1 : 17" , "2 : 24"
解决方案
您可以使用,Collectors.groupingBy
下游Collectors.summingInt
为:
List<String> result = player.stream()
.collect(Collectors.groupingBy(Player::getTeam,
Collectors.summingInt(Player::getPoints)))
.entrySet().stream()
.map(e -> e.getKey() + " : " + e.getValue())
.collect(Collectors.toList());
推荐阅读
- powerbi - 在 Power BI 中的度量中将前一天的值作为第二天的起点
- reactjs - 使用 apollo 客户端创建自定义 useSubscription 钩子
- c - 在 c 中创建多文件程序时出错
- scala - 如何按 Scala 中元素列表的各个元素进行分组
- gremlin - graphDatabase 上的聚合/GroupCount
- go - 在 Go 中获取当前模块的名称
- typescript - 定义具有类型约束的值,同时在打字稿中保持值的窄类型
- java - 如何在 Spring Boot 中编写以下原生查询?这些更改并未反映在调用以下方法 updateSiteListName(abc);
- c# - 在反序列化构造函数中缺少属性的对象时,如何让 Newtonsoft.Json 引发异常?
- django - Django Ckeditor 在本地主机上工作而不在服务器上