我正在编写一个可以拥有不同用户的游戏。每次玩游戏时,您都会提交一个分数。我想拥有一个高分榜,显示所有时间的前十名。例如:
A:[100,200,50]
B:[400,150,320]
C:[50,245,35]
我想要实现的是:
B 400
B 320
C 245
A 200
B 150
A 100
A 50
C 50
C 35
对数字本身进行排序不是一个大问题,但是我如何跟踪哪个球员的数字呢?我正在使用Java,但我认为HashMap可能会有用,但找不到解决方案。
基本上是:
答案 0 :(得分:3)
您可以编写分数类并实现Comparable
。
class Score implements Comparable<Score> {
int score;
Player player;
Score(int score, Player player) {
this.score = score;
this.player = player;
}
@Override
public int compareTo(Score otherScore) {
if (this.score > otherScore.score) {
return 1;
}
else if (this.score < otherScore.score) {
return -1;
}
else {
return this.player.name.compareTo(otherScore.player.name);
}
}
}
通过这种方式,您可以将分数保存在List
中并使用Collections.sort()
。
(在上面的示例中,我假设您有一个Player
属性为name
的类)