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