我有一个点列表,其中每个点都是一个很小的size列表2。我想按 的升序对点列表进行排序x,如果x值相等,我通过按 的降序排序来打破平局y。
我编写了一个自定义比较器来对点进行排序,如下所示:
Collections.sort(points, (a, b) -> {
if (a.get(0) != b.get(0)) {
return a.get(0) - b.get(0);
} return b.get(1) - a.get(1);
});
Run Code Online (Sandbox Code Playgroud)
这是排序之前的输入:
(2, 1000)
(9, -1000)
(3, 15)
(9, -15)
(5, 12)
(12, -12)
(5, 10)
(10001, -10)
(19, 8)
(10001, -8)
Run Code Online (Sandbox Code Playgroud)
这是使用上述比较器排序后产生的结果:
(2, 1000)
(3, 15)
(5, 12)
(5, 10)
(9, -15)
(9, -1000)
(12, -12)
(19, 8)
(10001, -10) …Run Code Online (Sandbox Code Playgroud)