Java用sort实现对数组的降序排序
在调用Arrays.sort()
对数组进行排序时,默认是升序排序的,如果想让数组降序排序,有下面两种方法:
- 利用
Collections
的reverseOrder
import java.util.*;
public class Main {
public static void main(String[] args) {
// 注意这里是Integer,不是int
Integer[] arr={9,8,7,6,5,4,3,2,1};
Arrays.sort(arr,Collections.reverseOrder());
for(int i:arr){
System.out.println(i);
}
}
}
- 利用
Comparator
接口复写compare
import java.util.*;
public class Main {
public static void main(String[] args) {
Integer[] arr={9,8,7,6,5,4,3,2,1};
Comparator cmp=new CMP();
Arrays.sort(arr,cmp);
for(int i:arr){
System.out.println(i);
}
}
}
class CMP implements Comparator<Integer>{
@Override //可以去掉。作用是检查下面的方法名是不是父类中所有的
public int compare(Integer a,Integer b){
// 两种都可以,升序排序的话反过来就行
// return a-b<0?1:-1;
return b-a;
}
}
注意:如果需要改变默认的排列方式,不能使用基本类型(int,char等)定义变量,而应该用对应的类