关于对象数组排序-java
Arrays类中的sort方法承诺可以对对象数组进行排序,但要求满足下列前提:对象所属的类必须实现了Comparable接口。
Comparable接口的代码如下:
public interface Comparable {
int compareTo(Object other);
}
这就是说,任何实现Comparable接口的类都需要包含compareTo方法,并且这个方法的参数必须是一个Object对象,返回一个整型数值。
当然,接口中还有一个没有明确说明的附加要求:在调用x.compareTo(y)的时候,这个compareTo方法必须确实比较两个对象的内容,并返回比较的结果。当x小于y时,返回一个负数;当x等于y时,返回0;否则返回一个正数。
代码实例:
定义一个Car类型,该类型种定义double信息属性speed来描述车速,下面代码实现按车速来对Car数组进行排序。
1、Car类型定义:
@Data
public class Car {
private double speed;
public Car(double speed) {
this.speed = speed;
}
}
此处用插件默认生成Getter、Setter和ToString方法。
2、实现Conparable接口:
@Data
public class Car implements Comparable{
private double speed;
public Car(double speed) {
this.speed = speed;
}
@Override
public int compareTo(Object o) {
return Double.compare(this.getSpeed(),((Car)o).getSpeed());
}
}
此处重写了compareTo方法。
3、调用:
public static void main(String[] args){
Car[] carList = new Car[]{
new Car(35.0),new Car(25.0),new Car(45.0)
};
Arrays.sort(carList);
for(Car car:carList){
System.out.println(car);
}
}
4、结果:
Car(speed=25.0)
Car(speed=35.0)
Car(speed=45.0)
如果类遵从某个特定接口,那么就履行这项服务!
Java对象数组排序
本文介绍如何使用Java的Arrays.sort方法对实现了Comparable接口的对象数组进行排序。以Car类为例,展示了如何通过重写compareTo方法实现自定义排序逻辑。
970

被折叠的 条评论
为什么被折叠?



