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 @   JamieChyi  阅读(10)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示