如果我有以下代码:
Arrays.sort(sums, new Comparator<Pair>() {
public int compare(Pair a, Pair b) {
return a.sum - b.sum;
}
});
它是将我的值从小到大还是从大到小排序?除了比较器之外,还有什么我可以用来定义我的分拣机吗?
答案 0 :(得分:0)
Arrays.sort(sums, new Comparator<Pair>() {
public int compare(Pair a, Pair b) {
return a.sum - b.sum;
}
});
通过这段代码,它只是逐个比较 sums 中的每个元素。
返回语句结果在这里是确定的。所以它基本上有3个输出。
如果它返回负数,则第二个 b 在你的情况下,因此它小于a;把它放在头上。然后它不断比较下一个元素。
如果它返回正数,则第一个大于第二个。所以它在 b 之后加上 a 。
如果它返回0,则比较属性中的两个元素相等。
因此,如果有一个元素列表,请说。 [3, 5, 2, 8]
它将成为 - &gt; [2, 3, 5, 8]
完全由你来比较你想要的任何财产。 我希望这能更好地解释事情。