Java 如何使用stream()对特定类型的变量求和

Java 如何使用stream()对特定类型的变量求和,java,java-stream,Java,Java Stream,我试图对同一个团队的所有积分求和,并返回一个字符串列表(团队:totalPoints) 公共类播放器{ 字符串名; 国际小组; 积分; } 列表播放器=新的ArrayList(); 添加(新玩家(“迈克尔”,1,10)); 添加(新玩家(“Mike”,2,15)); 添加(新玩家(“汤姆”,1,7)); 添加(新玩家(“马蒂”,2,9)); 我想收到一个列表,其中有:“1:17”、“2:24”您可以使用收集器。groupingBy与下游收集器。Summingit为: List<Strin

我试图对同一个团队的所有积分求和,并返回一个字符串列表(团队:totalPoints)

公共类播放器{
字符串名;
国际小组;
积分;
}
列表播放器=新的ArrayList();
添加(新玩家(“迈克尔”,1,10));
添加(新玩家(“Mike”,2,15));
添加(新玩家(“汤姆”,1,7));
添加(新玩家(“马蒂”,2,9));

我想收到一个
列表,其中有:
“1:17”、“2:24”
您可以使用
收集器。groupingBy
与下游
收集器。Summingit
为:

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());
List result=player.stream()
.collect(收集器).groupingBy(播放器::getTeam,
Collectors.summingit(Player::getPoints)))
.entrySet().stream()
.map(e->e.getKey()+”:“+e.getValue())
.collect(Collectors.toList());

这是Java,所以关键字是小写的:
public
int
我一直在寻找像
collector.summingit()这样的方法。非常nice@GBlodgett您可以始终使用
收集器。减少(0,Integer::sum)
@GBlodgett
toMap(Player::getTeam,Player::getPoints,Integer::sum)
也可以。
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());