Java用sort实现对数组的降序排序

时间:2024-02-16 21:55:08

在调用Arrays.sort()对数组进行排序时,默认是升序排序的,如果想让数组降序排序,有下面两种方法:

  1. 利用CollectionsreverseOrder
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);
        }
    }
}
  1. 利用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等)定义变量,而应该用对应的类