1. 程式人生 > >Java中Arrays.sort()自定義陣列的升序和降序排序

Java中Arrays.sort()自定義陣列的升序和降序排序

Java學習中會遇到對陣列進行升序或者降序排序的問題

Java語言提供給我們Array.sort(int [] arr)對陣列進行升序排列

import java.util.Arrays;
public class Test1 {
    public static void main(String[] args) {
        int[] a = {4,6,8,2,1,4,9,2,4};
        Arrays.sort(a);
        for(int arr:a) {
            System.out.print(arr + " ");
        }
    }
}

想要進行降序排序呢?Java提供了很靈活的自定義的方法:

import java.util.Arrays;
import java.util.Comparator;

public class Test1 {
    public static void main(String[] args) {
        //注意,要想改變預設的排列順序,不能使用基本型別(int,double, char)
        //而要使用它們對應的類
        Integer[] a = {9, 8, 7, 2, 3, 4, 1, 0, 6, 5};
        //定義一個自定義類MyComparator的物件
        Comparator cmp = new MyComparator();
        Arrays.sort(a, cmp );
        for(int i:a) {
            System.out.print(i+ "\t");
        }
    }
}
//Comparator是一個介面,所以這裡我們自己定義的類MyComparator要implents該介面,而不是extends Comparator
class MyComparator implements Comparator<Integer> {
    //如果n1小於n2,我們就返回正值,如果n1大於n2我們就返回負值,
    //這樣顛倒一下,就可以實現反向排序了
    @Override
    public int compare(Integer o1, Integer o2) {
        return o2-o1;
    }
}

執行結果如下

![在這裡插入圖片描述](https://img-blog.csdnimg.cn/20181107170157543.png