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));
}
}
结果与上面一样,这两种方式都可以实现对象的比较,具体还是看自己的爱好。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!