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]

posted @ 2017-09-21 15:45  牧 天  阅读(324)  评论(0)    收藏  举报