java.lang.comparable是内部比较器,用于给自定义类设定默认排序规则,让该类对象可直接被 collections.sort()、arrays.sort() 自动排序
一、接口码源
public interface comparable<t>{
int comparableto(t o);
}(1)仅含一个抽象类,必须重写。
(2)返回值规则
- 返回 负数:
this排在o前面 - 返回 0:两个对象视为相等,顺序不变
- 返回 正数:
this排在o后面
二、用法
- 自定义类实现接口:
public class 类名 implements comparable<类名> - 重写唯一方法
compareto(同类对象) - 存入 list 集合,调用
collections.sort(集合)自动排序
三、常见的排序方法
(1)数值字段排序
1.升序
@override
public int compareto(ship o) {
return this.id - o.id;
}2.降序
return o.id - this.id;
(2)字符串字段排序
// 名字字典序升序 return this.name.compareto(o.name);
不能直接相减,调用字符串自带的比较方法
四、与comparator的简单区分
- comparable:内部比较器,写死在实体类,默认排序
- comparator:外部比较器,临时定义,不修改实体类
五、总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。
发表评论