Comparable的用法

在竞赛中 我们经常要用到Arrays.sort();来排序 但是对于多维数组 排序设置比较麻烦 难理解(后面在学) 所以想到用自定义类来代替多维数组 想要对自定义类来排序 就要用到Comparable接口了
例如

public class 苹果 implements Comparable<苹果>{
    public int weight;//重量
    public int bs;//大小
    苹果(int weight,int bs){
        this.weight=weight;
        this.bs=bs;
    }
    public static void main(String[] args) {

        苹果[] ping= new 苹果[3];
        ping[0]=new 苹果(30,10);
        ping[1]=new 苹果(20,50);
        ping[2]=new 苹果(20,10);
        Arrays.sort(ping);
        for (int i = 0; i < 3; i++) {
            System.out.println(ping[i].weight+" "+ping[i].bs);
        }
    }

    @Override
    public int compareTo(苹果 o) {
        if (this.weight>o.weight)return 1;//顺序
        else if(this.weight<o.weight) return -1;
        else {
            if (this.bs>o.bs)return 1;
            else if(this.bs<o.bs) return -1;
            else return 0;
        }
    }
}

这段代码对苹果类进行排序
注意以下几个点

  1. Comparable<苹果>泛型写苹果类
  2. if (this.weight>o.weight)return 1;这样写是按照顺序来排列
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值