我正在用Java练习leetcode问题,在其中一种解决方案中,我发现用户发布了一个代码,在该代码中,使用比较器对Array进行排序。我在参考网站上做了一小段比较器,我知道它用于设置排序顺序(升序或降序)。然后,我打开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):
它的取回值指示其他对象是否相等,而更多则等于您的对象。
0 - if they are equal;
1 - if your object is greater;
-1 - if your object is lesser.
针对您的情况
a[0]>b[0]?1:-1
您只是比较每个子数组的0索引。