Comparable与Comparator对象比较

Comparable与Comparator

对两个或多个数据项进行比较,以确定它们之间的大小关系及排列顺序称为比较。

1.Comparable接口:

此接口强行对实现它的每个类的对象进行整体排序,这种排序被称为类的自然排序,类的compareTo方法被称为它的自然比较方法。

代码实现:

定义一个实体类实现Comparable接口,并重写compareTo()方法

class Pig implements Comparable<Pig> {
    private String name;
    private int age;

    public Pig(String name, int age) {
        this.name = name;
        this.age = age;
    }
	// get,set,toString
    @Override
    public int compareTo(Pig o) {
        // 根据年龄比较
        return this.age - o.age;
    }
}

测试类:

public class Test1 {
    public static void main(String[] args) {
        Pig[] pigs = {new Pig("纷纷", 23), new Pig("猪猪", 25), new Pig("丽丽", 21)};
        Arrays.sort(pigs);
        System.out.println(Arrays.toString(pigs));
    }
}

输出:

[Pig{name='丽丽', age=21}, Pig{name='纷纷', age=23}, Pig{name='猪猪', age=25}]

2.Comparator接口:

要求自定义比较器类去实现。

public class PigComparator implements Comparator<Pig> {
    @Override
    public int compare(Pig o1, Pig o2) {
        return o1.getAge() - o2.getAge();
    }
}

测试:

public class Test1 {
    public static void main(String[] args) {
        Pig[] pigs = {new Pig("纷纷", 23), new Pig("猪猪", 25), new Pig("丽丽", 21)};
        Arrays.sort(pigs,new PigComparator());
        System.out.println(Arrays.toString(pigs));
    }
}

结果与上面一样,这两种方式都可以实现对象的比较,具体还是看自己的爱好。

posted @ 2021-07-06 14:59  JamieChyi  阅读(15)  评论(0)    收藏  举报  来源