二维数组中的比较器如何根据 java 中的返回值设置升序和递减顺序



我正在用java练习一个leetcode问题,在其中一个解决方案中,我发现一个用户发布了一个代码,其中数组是通过使用比较器对数组进行排序的。我在参考网站上做了一个小的比较器Rnd,我知道它用于设置排序顺序(升序或降序(。然后我打开我的IDE来练习相同的操作,所以我编写了特定的代码。但是在编码时,我脑子里想着它正在重新调整-1 0和1。所以我怎么知道它会在下降或上升时发送。

最重要的是比较器如何处理以下输入。

int ar [][]= {{7,0}, {4,4}, {7,1}, {5,0}, {6,1}, {5,2}};
Arrays.sort(ar,(a,b)-> a[0]>b[0]?1:-1);
System.out.println(Arrays.deepToString(ar));

伙计们,我是编程新手,请深入解释上面示例中的排序过程。

比较器接口用于对用户定义类的对象进行排序。比较器对象能够比较两个不同类的两个对象。以下函数将 obj1 与 obj2 进行比较

语法:

public int compare(Object obj1, Object obj2):

它 retuern 值指示其他对象是否相等,而不是您的对象。

0 - if they are equal;
1 - if your object is greater;
-1 - if your object is lesser.

对于您的情况

a[0]>b[0]?1:-1

您只是比较每个子数组的 0 个索引。

最新更新