我創建了一個錦標賽排名計劃,目前有兩個類別。團隊類和評分類。團隊類擁有基於贏/輸/關係的實例變量,例如elo分數(雙)。得分類需要一個團隊的數組列表,並且計劃將從最高級到最低級依次創建一個新的Arraylist團隊。Java - 按對象實例對Arraylist進行排序。
我的問題是,什麼是最好的方式,我怎麼會根據ELO排名球隊進行排序,並將它們添加到新的ArrayList。
我創建了一個錦標賽排名計劃,目前有兩個類別。團隊類和評分類。團隊類擁有基於贏/輸/關係的實例變量,例如elo分數(雙)。得分類需要一個團隊的數組列表,並且計劃將從最高級到最低級依次創建一個新的Arraylist團隊。Java - 按對象實例對Arraylist進行排序。
我的問題是,什麼是最好的方式,我怎麼會根據ELO排名球隊進行排序,並將它們添加到新的ArrayList。
這裏有一種方法:
class Scoring{
private ArrayList<Team> teams;
public void addTeams(ArrayList<Team> toAdd){
for(Team t : toAdd){
for(int i = 0; i < teams.size(); i++){
if(teams.get(i).elo<t.elo)break;
}
teams.add(i, t);
}
}
}
另一種方式來做到這一點,將是TOADD使用比較器創建一個比較器和排序的ArrayList中,然後將其添加到團隊。
OP詢問如何對列表進行排序,但是你沒有在答案中提供。此外,您可以使用'List#addAll(Collection)',並刪除'addTeams'方法中的所有代碼。 –
是的,球隊將全部以排序方式輸入。只要所有球隊都進入排序狀態,那麼該列表將始終被排序。 –
您可以改用'PriorityQueue'。 –
那麼,你爲什麼不嘗試一下,看看它是怎麼回事?在SO上有很多排序問題,我相信你能夠找到有用的東西,而不需要有人告訴你究竟該做什麼。 – awksp