2017-04-01 26 views
0

如果我有下面的代码:如何使用Arrays.sort

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

难道我的排序值从小到大或从大到小的?除了Comparator,还有什么我可以用来定义我的分拣机吗?

+0

你为什么不打印出数值并亲自查看? –

回答

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

穿行此代码它简单地通过之一求和每个元件一个进行比较。

返回声明结果在这里是确定的。所以它基本上有3个输出。

如果它返回负数,那么第二个是b在你的情况下,所以它比a小;把它放在头上。然后它继续比较下一个元素。

如果它返回一个正值,那么第一个比第二个大。所以它把一个b

如果它返回0,则两个比较的元素对于比较属性是相等的。

因此,如果有一个元素列表让我们说。 [3, 5, 2, 8]它会变成 - >[2, 3, 5, 8]

这完全取决于你比较任何你想要的财产。 我希望这可以更好地解释事情。