一维:(需要Integer等包装类,基本数据类型不行)
- lambda表达式
public static void main(String[] args) {
Integer[] arr = {7, 8, 0, 2, 1, 8, 7, 0, 4, 3};
Arrays.sort(arr, (a, b) -> a - b);
System.out.println(Arrays.toString(arr));
Arrays.sort(arr, (a, b) -> b - a);
System.out.println(Arrays.toString(arr));
}
- new Comparator
public static void main(String[] args) {
Integer[] arr = {7, 8, 0, 2, 1, 8, 7, 0, 4, 3};
Arrays.sort(arr, new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
return o1 - o2;
}
});
Arrays.sort(arr, new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
return o2 - o1;
}
});
}
二维:(可以用int)
Arrays.sort(intervals, new Comparator<int[]>() {
@Override
public int compare(int[] o1, int[] o2) {
if (o1[0]==o2[0]) return o2[1]-o1[1];
return o1[0]-o2[0];
}
});
或者
Arrays.sort(nums, (a, b) -> a[0] == b[0] ? b[1] - a[1] : a[0] - b[0]);