Java Arrays.sort()方法对数组进行排序,通常情况下直接传入数组,默认升序排序。
public class Test {
public static void main(String[] args){
System.out.println("===排序前===");
int[] arr = {1,0,3,4};
for (int i = 0; i < arr.length; i++) {
System.out.print(" " + arr[i]);
}
System.out.println();
Arrays.sort(arr);
System.out.println("===排序后===");
for (int i = 0; i < arr.length; i++) {
System.out.print(" "+ arr[i]);
}
}
}
默认升序排列,如果需要降序操作,可以使用Lambda表达式对Comparator中的compare方法进行重塑。
public class Test {
public static void main(String[] args){
System.out.println("===排序前===");
Integer[] arr = {1,0,3,4};
for (int i = 0; i < arr.length; i++) {
System.out.print(" " + arr[i]);
}
System.out.println();
Arrays.sort(arr, (a,b)->b-a);
System.out.println("===排序后===");
for (int i = 0; i < arr.length; i++) {
System.out.print(" "+ arr[i]);
}
}
}
此处的a,b可理解为冒泡当中的数组前后两个变量。
如果需要对二维数组每一个数组按照第一个元素进行降序操作,也可以通过此类操作进行。
public class Test {
public static void main(String[] args){
Integer[][] arr = {{1,2},{0,10},{3,4},{4,2}};
System.out.println("===排序前===");
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr[i].length; j++) {
System.out.print(" "+ arr[i][j]);
}
System.out.println();
}
Arrays.sort(arr,(a,b)->a[0]-b[0]);
System.out.println("===排序后===");
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr[i].length; j++) {
System.out.print(" "+ arr[i][j]);
}
System.out.println();
}
}
}
此处a[0],b[0]为每一个数组的第一个元素,按照升序排列。