重写Comparable中的compareTo()方法,实现对象排序

本文介绍了如何在Java中对对象进行排序,特别是针对具有特定属性的对象如宠物。通过实现Comparable接口并重写compareTo()方法,可以根据对象的属性(如年龄)进行排序。在示例中,创建了Pet类和Dog类,并展示了如何根据年龄对它们进行排序。当比较相同类型的对象时,需要对代码进行调整以避免类型错误。文章还提到了泛型在确保比较对象为同一类型时的作用。
摘要由CSDN通过智能技术生成

之前也介绍了不少排序方法,基本上都是对数值进行排序,那如果需要对对象进行排序,该如何处理?例如:对宠物进行排序,该以什么样的规则进行排序?

在给对象排时,我们需要先找到可以量化的比较对象,例如上面的宠物就可以按照它们的年龄进行排序,这时候我们就得在其类中,从写compareTo(),重写前,该类需要使用Comparable,以宠物类为例:(idea 快捷键 类在使用Comparable接口后,alt+ins,选择overrideMethod,在选择compareTo,然后按照比较对象的属性进行改写)

创建Pet类,有属性int age,无参构造、有参构造,重写toString方法,并实现Comparable接口

并创建Dog类,继承Pet,并调用父类有参构造

Pet类:

 Dog类

 在创建测试类,测试对象排序,创建2个Pet类对象和2个Dog类对象,并存入到集合中,在按照年龄排序,代码及效果如下:

 

如果相同的对象进行比较,比如狗与狗比较,猫与猫比较,那么就需要对以上代码进行修改,就需要使用泛型限定比较的对象必须是同类型的。

修改代码如下:

Pet类

 Dog类也需要改变

 此时在运行之前t测试类代码,就会报错,必须把Pet类的对象和dog类的对象分开存储才能排序

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值