我對java相當陌生,因此是個問題。我的任務是創建一個類檢查器,它使用比較器desc對玩家進行排序。排序邏輯是按照降序對玩家進行排序,然後如果兩個玩家的得分相同,那麼名稱按字典順序排列的玩家應該首先出現。Java比較器的使用情況
這是球員類
class Player
{
String name;
int score;
}
的比較被稱爲這樣
Checker check=new Checker();
.................
Arrays.sort(Player,check.desc);
這是我試過,
class Checker implements Comparator<Player>{
public int compare(Player p1, Player p2){
if(p1.score < p2.score) return 1;
else if(p1.score > p2.score) return -1;
else if(p1.score == p2.score){
if(p1.name.compareTo(p2.name) < 0) return 1;
else if(p1.name.compareTo(p2.name) > 0) return -1;
else if (p1.name.compareTo(p2.name) == 0) return 0;
}
}
}
有人能幫助我得到它的權利。我不太瞭解desc
如何成爲checker
類的屬性。
「我真的不明白desc如何成爲檢查器類的屬性。」那麼,如果你不添加它就不是。但是,如果您始終希望按特定順序(無論是上升還是下降)進行排序,則不需要添加任何內容 - 只需使該邏輯爲該固定順序返回正確的值即可。 –
我將比較器的名字命名爲desc,然後將其刪除,因爲我無法理解它。 – Zeus
不通過類PLayer,而是傳遞包含玩家的列表 –