Java - Как сравнить элементы в списке объектов - PullRequest
0 голосов
/ 18 ноября 2018

Я пытаюсь получить и сравнить средние оценки объекта Player, хранящегося в List, где каждый объект имеет first name, last name и список scores.Примером этого может быть (List с одним объектом):

[0] Firstname: "Michael", Lastname: "Morris", Scores: [88, 92]

У меня есть код с вложенным циклом for в цикле for, который дает мне ошибку OutOfBounds,Мне нужно получить среднее количество баллов за Player и вернуть самое высокое Player с самым высоким средним.Вот то, что у меня есть в данный момент (название не очень хорошее):

public static PlayerScores findHighestScorer(List<PlayerScores> players) {
    String team = players.toString();

PlayerScores thePlayers = new PlayerScores("", ""); // What to return
for (int i = 0; i < team.length() - 1; ++i) { // Get every player and their average score
    PlayerScores player = players.get(i); // First player
    int avg = player.getAverage();
    for (int j = i + 1; j < team.length(); ++j) {
        PlayerScores player2 = players.get(j); // FIXME: OutOfBoundsException Error
        int avg2 = player2.getAverage();
        if (avg2 < avg) {
            thePlayers = player;
        } else if (avg2 > avg) {
            thePlayers = player2;
        } else {
            thePlayers = player;
        }
    }
}

return thePlayers;

Любые и все предложения будут очень полезны, спасибо!

1 Ответ

0 голосов
/ 18 ноября 2018

Надеюсь, это решит вашу проблему!Ура.

public static PlayerScores findHighestScorer(List<PlayerScores> players) {
    PlayerScores bestScore = null;

    // loop through list...
    for (PlayerScores score : players) {
        if (bestScore == null) {
            bestScore = score;
        } else {
            if (bestScore.getAverage() < score.getAverage()) {
                bestScore = score;
            }
        }
    }

    return bestScore;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...