2014-07-02 51 views
0

我創建了一個錦標賽排名計劃,目前有兩個類別。團隊類和評分類。團隊類擁有基於贏/輸/關係的實例變量,例如elo分數(雙)。得分類需要一個團隊的數組列表,並且計劃將從最高級到最低級依次創建一個新的Arraylist團隊。Java - 按對象實例對Arraylist進行排序。

我的問題是,什麼是最好的方式,我怎麼會根據ELO排名球隊進行排序,並將它們添加到新的ArrayList。

+0

那麼,你爲什麼不嘗試一下,看看它是怎麼回事?在SO上有很多排序問題,我相信你能夠找到有用的東西,而不需要有人告訴你究竟該做什麼。 – awksp

回答

0

這裏有一種方法:

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中,然後將其添加到團隊。

+0

OP詢問如何對列表進行排序,但是你沒有在答案中提供。此外,您可以使用'List#addAll(Collection)',並刪除'addTeams'方法中的所有代碼。 –

+0

是的,球隊將全部以排序方式輸入。只要所有球隊都進入排序狀態,那麼該列表將始終被排序。 –

+0

您可以改用'PriorityQueue'。 –

相關問題