C++|java使用comparable接口对非数字类型数组排序( 三 )


//重写的方法名、形参列表要保持一致 返回值类型小于等于原类型
a3 _a = (a3)a;
//因为形参列表必须保持一致 所以即便知道比的对象是a3类也要用Object引用 再强转成a3类
if (id<_a.id){
//实现的思路是比较两个对象id的值 this.id比_a.id小的话就认为this小于_a返回负数 在pai()方法中负数就不换位置
return -1;

return 1;
//this大于等于_a返回正数 pai()中定义如果返回正数就将两个元素交换
//因为pai()方法设定为if(返回正数)就交换位置 可以通过更改bi()的返回值实现排序由大到小或由小到大
// 上面的结果是由小到大 将if(id<_a.id)改为return 1 下面改为-1就变成了由大到小
//返回值为正数就交换 所以如果想让左边小于右边时候交换 就if(左<右)return 1 让左小于右的情况返回正数 就会实现从大到小的排序了