该方法是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]