1. 程式人生 > 實用技巧 >Arrays.sort()對二位陣列的排序

Arrays.sort()對二位陣列的排序

有時候通過做題會發現,如果兩者之間存在一一對應關係,此時一個滿足升序或降序,而要求另一個也隨之變化,與其對應,這是如果利用陣列儲存,就可以利用Arrays,sort()來進行排序

對於一個已定義的二位陣列a經行如下規則排序,首先按照每一個對應的一維陣列第一個元素進行升序排序(即a[][0]),若第一個元素相等,則按照第二個元素進行升序排序(a[][1])。(特別注意,這裡的a[][0]或者a[][1]在java中是不能這麼定義的,這裡只是想說明是對於某一個一維陣列的第0或1個元素進行排序)

程式碼:

 public static void main(String[] args) {
        
int[][] nums=new int[][]{{1,3},{1,2},{4,5},{3,7}}; //方法一 Arrays.sort(nums,new Comparator<int[]>(){ public int compare(int[] a,int[] b){ if(a[1]==b[1]){ //若a[0] b[0]值相同則比較a[1] b[1],按升序 return a[0]-b[0]; }else
{ return a[1]-b[1]; } } }); //方法二 /*Arrays.sort(nums,(a,b)->a[1]-b[1]);*/ for(int i=0;i<nums.length;i++){ System.out.println(Arrays.toString(nums[i])); } }