Comparator和compare怎么理解啊

不会用也看不懂compare里的参数从来哪来的,
以及为什么要比较point[1] ,而不是point[0]啊。
需求:能让我至少看懂题解这里怎么用的comparator

img

由于对二维数组进行排序,可以通过Arras工具类调用sort方法,并创建匿名比较器的方式来实现排序。

img


compare方法是属于比较器里面的,一般默认重写,你截图中属于自定义。
参数的解释:compare方法内的参数,跟sort中的第一个参数是相关联的,sort的第一个参数是用于比较大小的,而compare里面的参数则属于sort第一个参数里面的个体。

img


疑问解答:
以及为什么要比较point[1] ,而不是point[0]啊。
point[0]表示气球的左坐标,point[1]表示气球的右坐标。可以理解为判断气球的先后顺序,那么顾名思义,是根据右坐标来去判断的。

实现Compare接口与Comparator接口的类,都是为了对象实例数组排序的方便,因为可以直接调用

java.util.Arrays.sort(对象数组名称),可以自定义排序规则。

1 排序规则实现的方法不同

    Comparable接口的方法:compareTo(Object o)

    Comparator接口的方法:compare(T o1, To2)

无论是compareTo(T t)方法还是int compare(T o1,T o2)方法,顺序上前者大时,返回1;等于,返回0;前者小于后者时,返回-1。

2 类设计前后不同

  Comparable接口用于在类的设计中使用;

   Comparator接口用于类设计已经完成,还想排序(Arrays);