繁体   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