Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用无序列表计算团队统计数据_Java_List - Fatal编程技术网

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

Java 使用无序列表计算团队统计数据,java,list,Java,List,我正在做一个体育项目,其中我有一个无序列表,其中包含多个玩家对象。这些球员对象是篮球队的球员,具有球队(字符串)、总得分(int)等属性 我目前正在尝试写一个计算联盟中得分最高的球队的方法。因此,我的列表中有多个球员对象,每个人都有各自的总得分,我试图用这个来计算得分最多的球队 我可以通过在列表中循环找到最高的分值,然后再次循环找到得分=上一个循环中找到的最高分值的球员,轻松计算出得分最多的球员。问题是我不知道如何在整个团队中做到这一点,特别是因为现在所有的积分都必须属于一个团队 谢谢使用地图,

我正在做一个体育项目,其中我有一个无序列表,其中包含多个玩家对象。这些球员对象是篮球队的球员,具有球队(字符串)、总得分(int)等属性

我目前正在尝试写一个计算联盟中得分最高的球队的方法。因此,我的列表中有多个球员对象,每个人都有各自的总得分,我试图用这个来计算得分最多的球队

我可以通过在列表中循环找到最高的分值,然后再次循环找到得分=上一个循环中找到的最高分值的球员,轻松计算出得分最多的球员。问题是我不知道如何在整个团队中做到这一点,特别是因为现在所有的积分都必须属于一个团队


谢谢

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

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());
}
Map teamsPoints=newhashmap();
用于(玩家:玩家)
{
整数teamPoints=teamsPoints.get(player.getTeamName());
如果(团队积分==null)
teamsPoints.put(player.getTeamName(),player.getPoints());
其他的
teamsPoints.put(player.getTeamName(),teamPoints+player.getPoints());
}
您可以像这样在地图上迭代:

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());
}
for(Map.Entry teamPoints:teamsPoints.entrySet())
{
System.out.println(“Team=“+teamPoints.getKey()+”,Total points=“+teamPoints.getValue());
}

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