自定义类比较大小以及按照规则排序。

本文介绍如何通过实现Comparable接口来实现Java中自定义对象的排序功能。以Person类为例,详细讲解了重写compareTo方法的过程及注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  我们在开发的时候会创建许多对象,而这些对象有时候可能需要排序,排序就需要比较大小,但是java没有提供比较自定义对象大小的方法,所以需要我们自己实现。
  实现比较自定义对象有两种方法,实现接口Comparable或者Comparator,今天我根据我自己的理解讲讲如何实现Comparable接口来比较自定义对象的大小。
  第一步:自定义Person类,并且实现接口Comparable,并且重写接口中的方法 public int compareTo(Object obj)。

class Person implements Comparable {
    private int age;
    //假设对象根据年龄比较大小,且排序顺序为降序。
    @override
    public int compareTo(Object obj){
        //异常判断
        if(null == o){
            throw new NullPointerException("所比较对象不能为空");
        }

        Person p = (Person)o;
        return obj.age - this.age;
    }
}
第二步:外部调用
public static void main(String[] args){
    Person p1 = new Person(4);
    Person p2 = new Person(6);
    Person p3 = new Person(1);
    Person[] ps = new Person[3];
    ps[0] = p1;
    ps[1] = p2;
    ps[2] = p3;
    //如果使用系统自带的排序方法,就必须要实现Comparable接口。
    Array.sort(ps);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值