![](/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.