此方法是Arrays類別的靜態方法,用於對陣列進行排序,時間複雜度O(n*logn),方法傳回值為void。排序後,數組中存放的是排序後的結果。由於此方法是在原來數組的空間基礎上進行升序排序,因此不需要定義一個陣列接收它,即不需要傳回值。
Arrays.sort()重載了四類方法:
將指定T型數組依數字升序排序,例如:
importjava.util.Arrays;importjava.util.Comparator;publicclassMain{publicstaticvoidmain(String[]args){int[]a={2,5,1,8,12};Arrays.sort(a);System.out. println(Arrays.toString(a));}}
運行結果如下:
[1,2,5,8,12]
指定T型數組的指定範圍依數字升序排序,例如:
importjava.util.Arrays;importjava.util.Comparator;publicclassMain{publicstaticvoidmain(String[]args){int[]a={8,2,15,4,7,1};Arrays.sort(a,1,5 );System.out.println(Arrays.toString(a));}}
運行結果如下:
[8,2,4,7,15,1]
根據指定比較器產生的順序對T型數組進行排序。
importjava.util.Arrays;importjava.util.Comparator;publicclassMain{publicstaticvoidmain(String[]args){int[][]nums=newint[][]{{1,3},{5,7},{9, 5},{7,3}};Arrays.sort(nums,newComparator<int[]>(){publicintcompare(int[]a,int[]b){if(a[0]==b[0] ){returna[1]-b[1];}else{returna[0]-b[0];}}});for(int[]num:nums)System.out.println(Arrays.toString(num ));int[]a={8,2,15,4,7,1};Arrays.sort(a,1,5);System.out.println(Arrays.toString(a));}}
運行結果如下:
[1,3][5,7][7,3][9,5][8,2,4,7,15,1]
importjava.util.Arrays;importjava.util.Comparator;publicclassMain{publicstaticvoidmain(String[]args){int[][]nums=newint[][]{{1,3},{5,7},{9, 5},{7,3}};Arrays.sort(nums,newComparator<int[]>(){publicintcompare(int[]a,int[]b){if(a[1]==b[1] ){returna[0]-b[0];}else{returna[1]-b[1];}}});for(int[]num:nums)System.out.println(Arrays.toString(num ));}}
運行結果如下:
[1,3][7,3][9,5][5,7]
根據指定比較器產生的順序對T型數組的指定範圍進行排序,例如:
importjava.util.Arrays;importjava.util.Comparator;publicclassMain{publicstaticvoidmain(String[]args){int[][]nums=newint[][]{{9,5},{7,3},{5, 7},{1,3}};Arrays.sort(nums,1,4,newComparator<int[]>(){publicintcompare(int[]a,int[]b){if(a[0]== b[0]){returna[1]-b[1];}else{returna[0]-b[0];}}});for(int[]num:nums)System.out.println(Arrays .toString(num));}}
運行結果如下:
[9,5][1,3][5,7][7,3]