在竞赛中 我们经常要用到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;
}
}
}
这段代码对苹果类进行排序
注意以下几个点
- Comparable<苹果>泛型写苹果类
- if (this.weight>o.weight)return 1;这样写是按照顺序来排列