Java用sort實現對數組的降序排序


在調用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等)定義變量,而應該用對應的類


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM