使用无序列表来计算团队统计数据

时间:2013-10-23 23:47:06

标签: java list

我正在开发一个Sports程序,其中我有一个包含多个Player对象的无序列表。这些球员对象是篮球队的球员,具有球队(队员),得分总分(int)等属性。

我目前正在尝试编写一种方法来计算联盟中得分最高的球队。因此,我的列表中有多个玩家对象,每个对象都有各自得分,我正在尝试使用它来找出得分最高的团队。

我可以通过循环浏览列表并找到最高分值然后再次循环来找到得分=到前一循环中找到的最高值的玩家,轻松计算得分最多的玩家。问题是我不知道如何与整个团队一起做这件事,特别是因为现在所有的点值都必须属于一个团队。

由于

1 个答案:

答案 0 :(得分:1)

使用地图,您可以执行以下操作:

Map<String, Integer> teamsPoints = new HashMap<String, Integer>();
for (Player player : players)
{
    Integer teamPoints = teamsPoints.get(player.getTeamName());
    if (teamPoints == null)
        teamsPoints.put(player.getTeamName(), player.getPoints());
    else
        teamsPoints.put(player.getTeamName(), teamPoints + player.getPoints());
}

您可以像这样迭代地图:

for (Map.Entry<String, Integer> teamPoints: teamsPoints.entrySet()) 
{
    System.out.println("Team = " + teamPoints.getKey() + ", Total points= " + teamPoints.getValue());
}