【code基础】Comparator的使用

sort(T[] a, Comparator<? supre T> c): 根据指定比较器产生的顺序对指定对象数组进行排序。
sort(T[] a, int formIndex, int toIndex, Comparator<? supre T> c): 根据指定比较器产生的顺序对指定对象数组的指定对象数组进行排序。

默认的比较

Arrays.sort(a)

public void sort1(){
    int[] a={2,5,4,3,1,8};
    //默认从小到大排序
    Arrays.sort(a); //1.sort(T[] a):对指定T型数组按数字升序排序。
    System.out.println(Arrays.toString(a));
//[1, 2, 3, 4, 5, 8]
}

带比较器的比较

Arrays.sort(a,Comparator)

升序的几种写法:
Arrays.sort(a,(a1,a2)->a1-a2);
Arrays.sort(a,(o1, o2) -> o1.compareTo(o2));
Arrays.sort(a, Integer::compareTo);

public void compSort(){
     Integer[] a = {9,8,7,2,3,4,1,0,6,5};
      // 如果a1<a2,返回正值,a1>a2,返回负值,相等返回0
     Arrays.sort(a,(a1,a2)->a1-a2);  //升序是按照o1.compareTo(o2)来的,即(a1,a2)->a1-a2;
     Arrays.sort(a,(a1,a2)->a2-a1); //降序就要取反
     System.out.println(Arrays.toString(a));

}

默认的指定范围的比较

Arrays.sort(a,2,5)

public void sort2(){
    int[] a={2,5,4,3,1,8};
    Arrays.sort(a,2,5); //2.sort(T[] a,int formIndex, int toIndex):对指定T型数组的指定范围按数字升序排序
    System.out.println(Arrays.toString(a));
}
//[2, 5, 1, 3, 4, 8]
posted @ 2022-09-24 15:35  xiaoyu_jane  阅读(30)  评论(0编辑  收藏  举报