0

複数の Player オブジェクトを含む順序付けられていないリストがある Sports プログラムに取り組んでいます。これらの選手オブジェクトは、バスケットボール チームの選手であり、Team(string)、Total points scored(int) などの属性を持っています。

現在、リーグで最も得点の高いチームを計算するメソッドを作成しようとしています。したがって、私のリストには複数のプレーヤー オブジェクトがあり、それぞれの合計ポイントが得点されています。これを使用して、最も多くのポイントを獲得したチームを見つけようとしています。

リストをループして最高ポイント値を見つけてから、もう一度ループして、前のループで見つかった最高値まで得点したプレーヤーを見つけることで、最も多くのポイントを持つプレーヤーを簡単に計算できます。問題は、特にすべてのポイント値がチームに属さなければならないため、チーム全体でこれを行う方法がわからないことです。

ありがとう

4

1 に答える 1

1

Map を使用すると、次のようなことができます。

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());
}
于 2013-10-23T23:52:13.857 に答える