如何使用Arrays.sort

时间:2017-04-01 20:13:00

标签: arrays sorting compare comparator

如果我有以下代码:

    Arrays.sort(sums, new Comparator<Pair>() {
       public int compare(Pair a, Pair b) {
           return a.sum - b.sum;
       } 
    });

它是将我的值从小到大还是从大到小排序?除了比较器之外,还有什么我可以用来定义我的分拣机吗?

1 个答案:

答案 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]

完全由你来比较你想要的任何财产。 我希望这能更好地解释事情。