我正在用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 个索引。