sort(T[] a, Comparator<? supre T> c)
Comparator是一個比較器,用來比較T[] 的元素,可以比較多維數組,O1和O2比較,compare的返回值如果大於0,就把O1放到后面,否則放在前面,這個方法可以對整個數組排序。
public class ArraysSort { public static void main(String[] args) { int[][] nums=new int[][]{{1,3},{4,5},{1,2},{3,7}}; //方法一 Arrays.sort(nums,new Comparator<int[]>(){ @Override public int compare(int[] a,int[] b){ if(a[0]==b[0]){ return a[1]-b[1]; }else{ return a[0]-b[0]; } } }); // 方法二,使用匿名表達式 // (a,b)->a[1]-b[1]會自動轉變成上面的形式 /*Arrays.sort(nums,(a,b)->a[1]-b[1]);*/ for (int[] num : nums) { System.out.println(Arrays.toString(num)); } } }
lambda->相當於匿名方法,它的作用是可以不顯式new一個對象並寫方法,只用寫方法里的邏輯
//只用關心具體的方法邏輯
Arrays.sort(numsArr, (x, y) -> { long sx = 10, sy = 10; while (sx <= x) { sx *= 10; } while (sy <= y) { sy *= 10; } return (int) (-sy * x - y + sx * y + x); });
