将数组中间从低到高排序

时间:2016-12-17 09:49:27

标签: 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)}

首先排序:{(8,9),(10,9),(10,5),(10,7),(11,8),(11,9)}

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

有没有办法为此写一个比较器?

谢谢!

1 个答案:

答案 0 :(得分:0)

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