![](/img/trans.png)
[英]Offline highscores with SharedPreferences - Android (java)
[英]Sorting numbers for highscores in java
Ive为我的游戏提供了高分系统。 我希望能够以升序对数字进行排序,我有办法对数字进行排序
public static int[] sort(int[] a){
Arrays.sort(a);
return a;
}
但是我如何做到这一点,使分数保持设置它的玩家的名字? 例如我:10您:50
您应该是数字1,而我应该是数字2。如何进行排序,以便字符串在排序时与int保持在一起? 谢谢
最简单的方法是创建一个类来容纳该人的姓名和分数。 使它实现Comparable接口,在compareTo(...)
方法中,将当前对象this
的得分与传递给该方法的对象进行比较,然后对此类的对象进行排序在做。
class MyFoo implements Comparable<MyFoo> {
private String name;
private int score;
public MyFoo(String name, int score) {
// ... etc...
}
// getter methods here
public int compareTo(MyFoo other) {
return score - other.getScore();
}
//.... etc...
}
创建一个同时包含玩家名称和得分的Player
类,以及适当的getters( getName()
和getScore()
),您将能够对包含以下内容的Player数组进行排序
Player[] players = ...
Arrays.sort(players, new Comparator<Player> {
public int compare(Player p1, Player p2) {
return Integer.valueOf(p1.getScore()).compareTo(p2.getScore());
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.