TreeSet中的compareTo()方法

本文介绍了如何在Java中通过实现Comparable接口来对自定义对象进行排序。通过具体的代码示例,展示了如何根据不同属性(如id、brand和price)来进行对象间的比较。

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

在开发中,我们往往要用到自定义的对象,这些对象存在于集合中,自定义对对象进行排序,必须要实现CompareTo方法,并且类要用到接口的继承 implements Comparable<自定义类名>

// 规定对象的比较规则
public int compareTo(Student o) {
// TODO Auto-generated method stub

return this.id.compareTo(o.id);
}

很明显这样的一个简单的函数是将对象的id属性值拿来比较,如果这个函数返回值为1,也就是说这个集合中对象是按照id值升序排列的(this.id>o.id);

下面这个函数可以加强理解:

public int compareTo(Phone o) {
// TODO Auto-generated method stub

// 如果按照brand比较
// return this.brand.compareTo(o.brand);

// 按照price比较
// double result = this.price - o.price;
// return (int)result;

if (this.brand.compareTo(o.brand) == 0) {
double result = this.price - o.price;//如果品牌名一样,就按照价格比较
return (int)result;
}

return this.brand.compareTo(o.brand);//如果品牌名不一样 就按照品牌名字符串进行比较
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值