Java 将数组从中到低再到高排序

Java 将数组从中到低再到高排序,java,sorting,Java,Sorting,我有一个点列表,我首先按x值升序排序。现在,我想根据y值对列表进行再次排序,但从中到低再到高(或者从中到高再到低,实际上并不重要) 这是我的java代码: Collections.sort(list, Comparator.comparing((Integer[] p) -> p[0]).thenComparing(**"middle to low to high"**)); 例如: 初始列表:{(10,9)、(11,8)、(10,5)、(10,7)、(8,9)、(11,9)} 第一次排

我有一个点列表,我首先按x值升序排序。现在,我想根据y值对列表进行再次排序,但从中到低再到高(或者从中到高再到低,实际上并不重要)

这是我的java代码:

Collections.sort(list, Comparator.comparing((Integer[] p) -> p[0]).thenComparing(**"middle to low to high"**));
例如:

初始列表:
{(10,9)、(11,8)、(10,5)、(10,7)、(8,9)、(11,9)}

第一次排序:
{(8,9)、(10,9)、(10,5)、(10,7)、(11,8)、(11,9)}

第二个排序:
{(8,9)、(10,7)、(10,5)、(10,9)、(11,8)、(11,9)}
这就是我需要帮助的地方

有没有办法写一个比较器


谢谢大家!

与其尝试新的比较器,不如更改数字。假设你的间隔是(0..12),中间是7,那么最简单的方法是将所有值>7更改为v-13,对结果进行排序,然后将13添加到所有负值中,以进行更改。

与其尝试新的比较器,不如更改数字。假设间隔为(0..12),中间值为7,那么最简单的方法是将所有值>7更改为v-13,对结果进行排序,然后将13添加到所有负值中进行更改。

您必须首先定义中间值、低值和高值。您必须先定义中间值、低值和高值。