Comparator
public class User { public String name; public int score; public User(String name,int score) { this.name =name; this.score = score; } }
package one; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; public final class Demo { private static ArrayList<User> list = new ArrayList<User>(); public static int createUser(String name, int score) { list.add(new User(name, score)); return 0; } static class SortByScore implements Comparator<User> { @Override public int compare(User current, User front) { System.out.println("current:" + current.name + ", front:" + front.name); if (front.score == current.score) { return 0; } return front.score < current.score ? 1 : -1; } } private static void print() { for (User user: list) { System.out.print("[" + user.name + ", " + user.score + "] "); } System.out.println(); } public static void main(String[] args) { Demo.createUser("sanm", 72); Demo.createUser("samung", 72); Demo.createUser("das", 10); Demo.createUser("HT", 96); Demo.createUser("lihua", 89); print(); // 成绩从低到高 Collections.sort(list, new SortByScore()); print(); } }
[sanm, 72] [samung, 72] [das, 10] [HT, 96] [lihua, 89]
current:samung, front:sanm
current:das, front:samung
current:das, front:samung
current:das, front:sanm
current:HT, front:sanm
current:HT, front:samung
current:lihua, front:samung
current:lihua, front:HT
[das, 10] [sanm, 72] [samung, 72] [lihua, 89] [HT, 96]