我需要不斷地向數據字段添加新玩家。所以我在考慮首先將所有人添加到一個ArrayList,其中對象播放器有兩個變量:名稱和分數。然後我想創建一個排名方法,將所有玩家從我的數組列表中存入數組,並將其從最高分到最低分。我不知道如何對它們進行排序,因爲這是我想要排序的自定義對象。我正在使用的示例是一個由49名玩家組成的數據集。[Java]根據玩家分數對數組進行排序
-2
A
回答
0
您必須實現Comparable
接口並覆蓋compareTo
方法才能進行自定義比較。更多這裏:https://docs.oracle.com/javase/7/docs/api/java/lang/Comparable.html
0
它似乎爲你工作。
public static void main(String[] args) {
List<Player> players = new ArrayList<>();
players.add(new Player("L", 98));
players.add(new Player("M", 88));
players.add(new Player("N", 90));
System.out.println("before " + players);
Collections.sort(players, new Comparator<Player>() {
@Override
public int compare(Player o1, Player o2) {
return o1.getScore() > o2.getScore() ? -1 : 1;
}
});
System.out.println("after " + players);
}
static class Player {
private String name;
private double score;
public Player(String name, double score) {
this.name = name;
this.score = score;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getScore() {
return score;
}
public void setScore(double score) {
this.score = score;
}
@Override
public String toString() {
return "{" + name + ", " + score + "}";
}
}
相關問題
- 1. 使用選擇排序根據玩家點數對列表進行排序?
- 2. 如何根據另一個數組對數組進行排序?
- 3. 根據子數組對數組進行排序count
- 4. 如何根據輸入數組對數組進行排序?
- 5. 根據另一個數組對數組進行排序,swift
- 6. 根據出現次數對數組進行升序排序
- 7. 根據票數對人進行排序
- 8. 基於玩家位置排序數組
- 9. 根據出現次數對數組進行排序
- 10. 使用Java對數組進行排序
- 11. Java - 對2D數組進行排序
- 12. 如何根據對象的屬性對數組進行排序?
- 13. 根據給定的順序對數組進行排序
- 14. 根據條件對ArrayList數據進行排序和排序
- 15. 對數組進行排序
- 16. 對數組進行排序
- 17. 如何根據java中的時間戳對FTPFile []數組對象進行排序
- 18. 根據內部數組上的對象的屬性對數組進行排序
- 19. 根據時間變量對分組數據幀進行排序colum
- 20. 對數組或數組進行排序?
- 21. 根據月份對數據庫結果對象(數組)進行排序
- 22. PHP - 根據另一個陣列對數組進行排序
- 23. 根據其初始鍵對PHP數組進行排序?
- 24. 根據file.lastModified對文件[]的數組進行排序
- 25. 根據當前時間對php數組進行排序
- 26. Laravel如何根據數組索引對集合進行排序
- 27. 如何根據鍵值對TCL數組進行排序?
- 28. 根據長度對字符串數組進行排序
- 29. 如何根據notif_date_sort對這個多維數組進行排序?
- 30. 如何根據列對數組列表進行排序?
創建一個自定義的「Comparator」或實現「Comparable」。 –
請添加您的代碼到目前爲止嘗試過的內容。 – proudandhonour
在TreeSet中保存對象,將比較器傳遞給TreeSet構造函數,它將爲您保留命令 –