簡體   English   中英

在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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM