Comparable和Comparator

Comparable<T>

Comparable 定义在 Person类的内部:

public class Person implements Comparable<Person> {
@Override
public int compareTo(Person o) { // 返回负整数、 0、正整数表示小于、大于、等于 return 0; } }

Collections.sort(PersonList)可以对PersonList进行排序。

String 实现了Comparable接口,compareTo方法依次比较两个字符串ASC码。如果两个字符的ASC码相等则继续后续比较,否则直接返回两个ASC的差值。

Comparator<T>

Comparator 是定义在Person的外部的, Person类的结构不需要有任何变化

public class PersonComparator implements Comparator<Person> {

    @Override
    public int compare(Person o1, Person o2) {
        // 返回负整数、 0、正整数表示小于、大于、等于
        return 0;
    }
}


Collections.sort( personList , new PersonComparator() )可以对PersonList进行排序。

posted @ 2016-03-08 22:44  rhythm of the rain  阅读(101)  评论(0)    收藏  举报