0

我有这个用户类

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;
        }

    });

}

}

用户对象具有属性名称和分数。我想根据用户的分数对我的列表进行排序。

4

2 回答 2

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

    });
于 2013-02-22T14:58:20.297 回答
0

创建一个实现 Comparator 的对象:

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
于 2013-02-22T14:58:19.670 回答