我在java中练习了一个leetcode问题,在其中一个解决方案中,我发现一个用户发布了一个代码,其中数组是根据使用比较器进行排序的。我在参考网站上做了一个比较的小Rnd,我知道它是用来设置排序顺序(升序或降序)的。然后我打开IDE进行同样的练习,所以我编写了特定的代码。但是在编码的时候,我突然意识到它是-10& 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));
各位,我是编程新手,请深入讲解上面例子中的排序过程。
发布于 2020-06-07 07:36:27
比较器接口用于对自定义类的对象进行排序。比较器对象能够比较两个不同类的两个对象。以下函数将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索引。
https://stackoverflow.com/questions/62242176
复制相似问题