1.Arrays.sort(int [] a);
@Test
public void arrSort(){
Integer [] array = {14, 90, 12,32, 1, 134, 3};
//升序排序
//Arrays.sort(array, (x, y) -> x - y);//1 3 12 14 32 90 134
//降序排列
Arrays.sort(array, (x, y) -> y - x);//134 90 32 14 12 3 1
for (Integer i:array) {
System.out.print(i + " ");
}
}
2.Arrays.sort(int[] a, int fromIndex, int toIndex);
字符串数组排序Arrays.sort():字符串实现了Comparable接口,所以字符串是可比较的
1、先比较两个字符串相同长度部分,如果能比较出结果,则返回比较结果;
2、相同长度部分一模一样,则比较两个字符串的长度len1 - len2
@Test
public void stringSort(){
/**
* 1.所以如果Arrays.sort()中不提供比较器,则使用的是字符串自己的比较函数compareTo()来进行比较。
* 即先按字母排序,后再按字符串长度排序
*/
String[] array = {"zx", "xc", "sd", "rt", "bb", "sb", "sd"};
Arrays.sort(array);//bb rt sb sd sd xc zx
for (String i:array) {
System.out.print(i + " ");
}
System.out.println("-------");
/**
* 2.只想按字符串长度比较,从短到长
*/
String[] array2 = {"zxd", "xtc", "bsd", "r", "liu", "chen", "qi"};
Arrays.sort(array2, (x, y) -> x.length() - y.length());//r qi zxd xtc bsd liu chen
for (String i:array2) {
System.out.print(i + " ");
}
System.out.println("-------");
/**
* 3.把字符串数组所有字符串拼接起来成一个字符串,要求这个字符串是所有能拼接出来结果中按字母排序
*/
String[] array3= {"zxd", "xtc", "bsd", "r", "liu", "chen", "qi"};
Arrays.sort(array3, (x, y) -> (x+y).compareTo(y+x));//bsd chen liu qi r xtc zxd
for (String i:array3) {
System.out.print(i + " ");
}
}
3.二维数组中一维数组进行升序排序
//二维数组的升序排列
int[][] intervals ={{1,3}, {8,10}, {2,6}, {15,18}};
Arrays.sort(intervals, (x, y)-> x[0] - y[0]);