2014-03-04 56 views
0

我正在从一个文本文件中读取关于冬季奥运会不同运动员成绩的数据。我已经成功地通过比较每个运动员与他们的国家并将其添加到总计中来找到每个国家的总得分。这些总数都存储在双打:FRA,CHN,UKR,GER,RUS,CAN,ITA,美国,JPN和GBR。 (所有代表不同的国家)排序双打

所以,现在我有一堆值存储为双打,我需要按降序排序。我知道我可以将双打放入一个数组中并对其进行排序,但是我将失去与每个值相关的国家名称。在PHP中,我可以简单地将它放入一个关联数组中并对其进行排序 - 但不幸的是,我对java的理解很差,不知道该怎么做。如果有人能够至少将我指向正确的方向,我将不胜感激。

输出需要以降序显示国家名称及其得分。

+0

是什么让你期待的SO团队,为您带来任何代码或实例的解决方案? – NaaN

+0

@tailorBird OP确实得到了答案... – hd1

回答

2
public class Score implements Comparable<Score>{ 

    private String country; 
    private int score; 

    //write getters, setters 

    public int compareTo(Score otherScore){ 
     return otherScore.score - this.score // for descending 
      // return this.score - otherScore.score for assending 

    } 
} 

您可以创建Score对象的数组并将其传递给Array.sort(array); 现在这些对象的排序标准是分数。

实例详细: http://www.mkyong.com/java/java-object-sorting-example-comparable-and-comparator/

+0

减去两个分数**应该是可以的,但使用Java内置的可能是更好的做法:'Integer.compare(score,otherScore)' – Mureinik