我有一个点列表,我首先按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 :(得分:0)
不是尝试新的比较器,而是更改数字。假设您的间隔是(0..12),中间是7,那么最简单的方法是将所有值> 7更改为v-13,对结果进行排序并通过向所有负值添加13来更改。