我有一个播放器对象的数组列表。这些球员都得分很高。我不确定如何遍历数组列表并找到得分最高的玩家。 Collections.sort不适用于此
public void determineWinner() {
for (int i = 0; i < playersList.size(); i++) {
playersList.get(i).getFrameScores2();
System.out.println("**************");
System.out.println("Player " + playersList.get(i).getName() + " total score is : " + playersList.get(i).getTotalScore());
}
}
最佳答案
将Collections.max()
与适当的Comparator
一起使用
Player topScorer = Collections.max(playerList, new Comparator<Player>() {
public int compare(Player p1, Player p2) {
return Integer.compare(p1.getTotalScore(), p2.getTotalScore());
}
});
如果
Player
对象自然使用getTotalScore()
属性对自身进行排序,请考虑使用与上述类似的代码使Player
实现Comparable<Player>
。然后要找到得分最高的得分手,您只需调用Collections.max(playerList);
(无需提供Comparator
)。