[英]How to sum using stream() by a certain type of variable
我试图从同一个团队中总结所有积分并返回一个字符串列表(团队: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());
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.