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

    });

}

}

User オブジェクトにはプロパティ name と score.i があり、ユーザーのスコアに基づいてリストを並べ替えたいと考えています。

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

これは基本的に、2つのオブジェクト間の比較を実装します。これにより、自動ソート方法を使用できます。

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 に答える