Java-Comparable类(重写compareTo方法)

1.Comparable 接口定义了compareTo方法,用于比较对象,为了找出两个相同类型的对象中较大者的通用方法。Comparable接口是一个范型接口。在实现该接口时,范型类型E被替换成一种具体的类型。Java库中的许多类实现了Comparable接口以定义对象的自然顺序。Byte、Short、Integer、Long、Float、Double…以及Data类

2.由于所有Comparable对象都有compareTo方法,如果对象是Comparable接口类型的实例的方法,Java API中的Arrays.sort(Object[])方法就可以使用compareTo方法来对数组中的对象进行比较和排序.

import java.util.Arrays;

public class TaskComparable {
    public static void main(String[] args) {
        String[]strings={"b","a","c"};
        Arrays.sort(strings);
        for (String string : strings) {
            System.out.println(string);//a b c
        }
    }

}

3.如果自定义类想比较两个相同对象谁大谁小,那么就可以实现Comparable类然后重写compareTo()方法。例如:

public class ComparableRectangle implements Comparable<ComparableRectangle> {
    double area;
    double width;
    double height;

    public ComparableRectangle(double width,double height){
        this.width=width;
        this.height=height;
    }

    public double getArea(){
        return height*height;
    }

    @Override
    public int compareTo(ComparableRectangle o) {
        if (this.getArea()<o.getArea()){
            return  -1;
        }else if (this.getArea()==o.getArea()){
            return 0;
        }else{
            return 1;
        }
    }


    public static void main(String[] args) {
        ComparableRectangle c1=new ComparableRectangle(10,11);
        ComparableRectangle c2=new ComparableRectangle(12,13);
        System.out.println("比较结果:"+c1.compareTo(c2));
    }
}

4.注意Object的equals方法是为了比较连个对象的内容是否相同,不要与compareTo方法混淆.

  • 3
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值