2013-02-22 26 views
0

我有這個用戶類我如何分類我的Arraylist?

public class User { 

public String userName; 
public int highScore = 0; 

public static ArrayList<User> userList = new ArrayList<User>(5); 

public User(String name, int score) { 
    this.userName = name; 
    this.highScore = score; 
    userList.add(this); 

    Collections.sort(userList, new Comparator<User>() { 
     @Override 
     public int compare(User lhs, User rhs) { 
      return lhs.highScore-rhs.highScore; 
     } 

    }); 

} 

}

用戶對象具有的屬性名稱和score.i要排序我的用戶評分的基礎上名單。

+1

請標記您的問題,用適當的語言。 – meagar 2013-02-22 14:52:48

回答

3
java.util.Collections.sort(userList, new Comparator<User>(){ 
     @Override 
     public int compare(User lhs, User rhs) { 
      return lhs.getScore() - rhs.getScore(); 
     } 

    }); 
+0

非常感謝你! – Mukul 2013-02-22 15:15:58

+0

它不工作sir – Mukul 2013-02-22 15:25:17

+0

@ user2015770什麼不適合你? – Taky 2013-02-22 18:23:01

0

創建實現比較器的對象:

http://docs.oracle.com/javase/6/docs/api/java/util/Comparator.html

這基本上實現了兩個對象之間的比較。從這裏,你可以使用自動排序方法。

public class UserComparator implements Comparator { 
    public boolean compare(Object object1, Object object2) { 
     return ... \\ result of comparison 
    } 
} 
public static ArrayList<User> userList = new ArrayList<User>(5); 

Collections.sort(usersList, new UserComparator()); 

返回值是一個int。

0 if object1 equals object2 
a negative int if object1 < object2 
a positive int if object1 > object2 
+0

謝謝你的幫助。 – Mukul 2013-02-22 15:16:17

+0

應該是什麼結果? – Mukul 2013-02-22 15:34:38

+0

如果object1等於object2,則結果爲0;如果object1小於object2,則結果爲負值;如果object1大於object2,則結果爲正值int。 – mjshaw 2013-02-22 15:38:52