缘由:上次给某同学讲Collections.sort()
在Comparator接口重写compare方法,被比较规则卡壳,于是有了下文
@Override
public int compareTo(Employee o) {
if(this.id > o.id)
return -1;
else if(this.id < o.id)
return 1;
else
return 0;
}
首先总结规律
这里以c语言标准qsort的cmp为例,Java等同理
下图中,传入两个参数,num1,num2,转换成整型就是a,b
如果a>b时,返回值>0则a排在b后面,对应的从小到大排序
如果a>b时,返回值<0则a排在b前面,对应的从大到小排序
int cmp(const void* num1 ,const void* num2) {
int a = *(const int*)num1;
int b = *(const int*)num2;
if (a > b) {
return -1;//从大到小
}
else if (a == b) {
return 0;
}
else {
return 1;
}
}
以下面代码为例
#include<stdio.h>
int cmp(const void* nu