關於Array.sort()在二維數組中的用法詳解


最近刷Leetcode,第1710題卡車上的最大單元數,這個題用到了Array.sor()在二維數組中的實現,其中這句話

 

 Arrays.sort(boxTypes, (a, b) -> b[0] - a[0]);//對二維數組進行排序

 

讓我一直匪夷所思,網上查了了好久才搞清楚,特此記錄。

 

首先復習下二維數組。其實二位數組就是一維數組,只是這個一位數組中的元素不是Int,String等基本類型而是Int [ ]。String [ ]數組類型。

例子:int[][] arr = {{1,2,3,4,5},

        {6,7,8,9,10},

        {11,12,13,14,15},

        {16,17,18,19,20}        

        }

這就是一個二位數組(本質上是一維,一共有4個元素。元素1:{1,2,3,4,5},元素2:{6,7,8,9,10),元素3:{11,12,13,14,15},元素4:{16,17,18,19,20})

 

 Arrays.sort(boxTypes, (a, b) -> b[0] - a[0]),這句話是說我現在定了你的排序方法了,是按每一數組中的第一個數從大到小排序。按上面的例子來說就是

排完序后:

arr = {

  {16,17,18,19,20},

  {11,12,13,14,15},

  {6,7,8,9,10},

  {1,2,3,4,5}     

  }

同理可得:Arrays.sort(boxTypes, (a, b) -> b[3] - a[3]) 就是把每個數組中的第三個數組按從大到小的順序進行比較。(如果是Arrays.sort(boxTypes, (a, b) -> a[3] - b[3]) 那就是)按從小到大的順序進行比較)

arr = {

  {16,17,18,19,20},

  {11,12,13,14,15},

  {6,7,8,9,10},

  {1,2,3,4,5}     

  }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM