2017-04-01 55 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]

這完全取決於你比較任何你想要的財產。 我希望這可以更好地解釋事情。