关于对象数组排序-java

Java对象数组排序
本文介绍如何使用Java的Arrays.sort方法对实现了Comparable接口的对象数组进行排序。以Car类为例,展示了如何通过重写compareTo方法实现自定义排序逻辑。

关于对象数组排序-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)

如果类遵从某个特定接口,那么就履行这项服务!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值