【问题标题】:Working with an Unordered List to calculate team stats使用无序列表计算团队统计数据
【发布时间】:2013-10-24 07:52:13
【问题描述】:

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

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

我可以很容易地计算出得分最高的球员,方法是遍历列表并找到最高分值,然后再次循环查找得分 = 上一个循环中找到的最高值的球员。问题是我不知道如何对整个团队执行此操作,尤其是因为现在所有点值都必须属于一个团队。

谢谢

【问题讨论】:

  • 你可以创建一个TeamStats 类。 TeamStats 可以只保留对该团队成员的每个玩家的引用。然后对于TeamStats teamA,您可以使用teamA.getTeamPointsScore(),它会遍历团队中的玩家,总结他们的得分,并返回该值。然后您可以根据getTeamPointsScore() 对球队进行排序,就像根据playerA.getPlayerPointsScored() 对球员进行排序一样

标签: java list


【解决方案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());
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-11
    相关资源
    最近更新 更多