java的int数组和List列表逆序排序(装箱为Integer类型)

一、List的逆序排序Collections.sort(list)

List 逆序使用lambda表达式,Collections.sort(list); ,且使用System.out.println(list)可以直接打印出来,不过是带有[]

List<Integer> list = new ArrayList<>();
list.add(2);
list.add(3);

Collections.sort(list);   // 默认从小到大
System.out.println(list);

Collections.sort(list, (a, b)->b-a);   // 从大到小
System.out.println(list);

java的int数组和List列表逆序排序(装箱为Integer类型)_第1张图片

二、int[]数组的逆序排序Arrays.sort

Arrays.sort(int[])只有正序排序,但是没法逆序排序,加Comparator也不行,因为它要求元素是对象而不是基础数据类型。

加Comparator,其他类型的数组或者 int[][] 的数组是可以成功的,例如二维int数组

java的int数组和List列表逆序排序(装箱为Integer类型)_第2张图片

但是我们如果对一维数组逆序排序,就需要将int转为Integer再用Comparator去逆序,最后转回int数组。

Integer[] arr = new Integer[]{2, 3};
Arrays.sort(arr);
Arrays.sort(arr, (a, b)->b-a);
for (int num : arr) {   // 自动拆箱为int
    System.out.print(num + " ");
}

java的int数组和List列表逆序排序(装箱为Integer类型)_第3张图片

你可能感兴趣的:(Java后端,java,数据结构,算法)