繁体   English   中英

如何使用某种类型的变量使用stream()求和

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM