运行结果出问题不能理解求

问题为Java实现二维数组排序

import java.util.Arrays;

public class java {
    public static void main(String[] args){
        int[][] m=new int[][]{{4,5},{1,7},{4,2},{1,2},{1,1},{4,1}};
        sort(m);
        for (int i=0;iout.print(Arrays.toString(m[i]));
    }
    public static void sort(int[][] array){
        for (int i = 0; i < array.length-1; i++) {
            for (int j = 0; j < array.length-1-i; j++) {
                if (large(array[j],array[j + 1])) {
                    int[] temp = array[j];
                    array[j] = array[j + 1];
                    array[j + 1] = temp;
                }
            }
        }
    }
    public static boolean large(int[] a,int[] b) {

       if (a.length > b.length)
            return true;
        else if (b.length > a.length)
            return false;
        else {
            for (int i=0;iif (a[i]>b[i]) {
                    return true;
                }
            }
        }
        return false;
    }
}


运行结果应该是将这个二维数组由小到大排序
但结果为这个:
[1, 1][4, 1][1, 2][4, 2][1, 7][4, 5]
进程已结束,退出代码0
我也不知道哪里出了毛病请求帮我修改一下代码,预期结果应该是[1, 1][1,7][1, 2][4, 1][4,2][4, 5]

代码如下:


import java.util.Arrays;

public class java {
    public static void main(String[] args) {
        int[][] m = new int[][] { { 4, 5 }, { 1, 7 }, { 4, 2 }, { 1, 2 },
                { 1, 1 }, { 4, 1 } };
        sort(m);
        for (int i = 0; i < m.length; i++)
            System.out.print(Arrays.toString(m[i]));
    }

    public static void sort(int[][] array) {
        for (int i = 0; i < array.length - 1; i++) {
            for (int j = 0; j < array.length - 1 - i; j++) {
                if (large(array[j], array[j + 1])) {
                    int[] temp = array[j];
                    array[j] = array[j + 1];
                    array[j + 1] = temp;
                }
            }
        }
    }

    public static boolean large(int[] a, int[] b) {
        if (a.length > b.length)
            return true;
        else if (b.length > a.length)
            return false;
        else {
            for (int i = 0; i < a.length; i++) {
                if (a[0] < b[0]) {
                    return false;
                }
                if (a[i] > b[i]) {
                    return true;
                }
            }
        }
        return false;
    }

}

运行效果:

img

class test {

     public static void main(String[] args){
         int[][] m=new int[][]{{4,5},{1,7},{4,2},{1,2},{1,1},{4,1}};
         sort(m);
         for (int i=0;i<m.length;i++)
             System.out.print(Arrays.toString(m[i]));
     }
     public static void sort(int[][] array){
         for (int i = 0; i < array.length-1; i++) {
             for (int j = 0; j < array.length-1-i; j++) {
                 if (large(array[j],array[j + 1])) {
                     int[] temp = array[j];
                     array[j] = array[j + 1];
                     array[j + 1] = temp;
                 }
             }
         }
     }
     public static boolean large(int[] a,int[] b) {
         if (a.length > b.length)
             return true;
         else if (b.length > a.length)
             return false;
         else {
             for (int i=0;i<a.length;i++){
                 if(a[0]<b[0]){
                     return false;
                 }
                 if (a[i]>b[i]) {
                     return true;
                 }
             }
         }
         return false;
     }
}

img