【发布时间】:2018-12-22 20:10:39
【问题描述】:
我无法理解在 Java 中使用自定义比较器进行排序。
Queue<Integer> q = new PriorityQueue<>(arr.length, (a,b) -> a-b);
给我升序排序,而
Queue<Integer> q = new PriorityQueue<>(arr.length, (a,b) -> b-a);
给我一个降序排序。
我无法理解的是这是如何工作的? b 是传入元素,a 是否已经在数组中,反之亦然?另外,升序或降序是如何获得的?
如果a-b > 0,这意味着a>b,那么b不应该按升序排列在a前面吗?
【问题讨论】: