天天看點

使用匿名内部類排序對象

項目github位址:bitcarmanlee easy-algorithm-interview-and-practice

歡迎大家star,留言,一起學習進步

排序是實際中常用的一種需求。具體針對某類對象,也經常需要對對象進行排序。

下面給出一個簡單的例子,使用匿名内部類實作Comparator接口來進行排序。

public class Demo {
    public static void TestForSort(List<Person> persons) {
        Collections.sort(persons,new Comparator<Person>() {
            @Override
            public int compare(Person p1,Person p2) {
                if(p1.age > p2.age) return 1;
                else if (p1.age == p2.age) return 0;
                else return -1;
            }
        });
    }

    public static void main(String[] args) {
        Person p1 = new Person("Jack",18);
        Person p2 = new Person("Lucy",20);
        Person p3 = new Person("Bruce",19);
        Person p4 = new Person("Lili",16);
        List<Person> rawList = new ArrayList();
        rawList.add(p1);
        rawList.add(p2);
        rawList.add(p3);
        rawList.add(p4);
        TestForSort(rawList);
        for(Person p:rawList) {
            System.out.println(p);
        }


    }
}

class Person {
    String name;
    int age;

    public Person(String name,int age) {
        this.name = name;
        this.age = age;
    }

    @Override
    public String toString() {
        return name + ":" + age;
    }
}
           

運作上面的代碼:

Lili:16
Jack:18
Bruce:19
Lucy:20