我正在尝试对同一个团队的所有分数求和并返回一个字符串列表(团队: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());
关于java - 如何通过某种类型的变量使用 stream() 求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54245392/