繁体   English   中英

如何检查 2d int 数组中的所有行是否具有相同的长度?

[英]How to check if all lines in a 2d int array have the same length?

如果我有一个一维数组,我可以使用a.length轻松检查行的长度。 在二维数组中,我可以使用类似这样的方式检查所有列的长度

int[][] a = {{5,3,4,6,7,8,9,1,2},
             {6,7,2,1,9,5,3,4,8},
             {1,9,8,3,4,2,5,6,7},
             {8,5,9,7,6,1,4,2,3},
             {4,2,6,8,5,3,7,9,1},
             {7,1,3,9,2,4,8,5,6},
             {9,6,1,5,3,7,2,8,4},
             {2,8,7,4,1,9,6,3,5}};
for (int k = 0; k < a.length; k++) {
    if (a[k].length != 9) return false
}

我什至不确定这是否正确。 如何检查不同的行? 当我有一个 4x4 矩阵,并且最后一行只包含 3 个值而不是 4 个时,我怎样才能找到它?

(假后缺少分号。)您的代码是正确的。 如果你通过了一个未知大小的int[][] a

boolean isRectangularMatrix(int[][] a) {
    int columnCount = 0; // Maybe interesting too.
    boolean rectangular = true;
    if (a.length != 0) {
        columnCount = a[0].length;
        for (int k = 1; k < a.length; k++) {
            if (a[k].length != columnCount) {
                //return false; // Or:
                rectangular = false;
                break;
            }
        }
    }
    return rectangular;
}

boolean isSquareMatrix(int[][] a) {
    int columnCount = 0; // Maybe interesting too.
    boolean square = true;
    if (a.length != 0) {
        columnCount = a[0].length;
        if (a.length != columnCount) {
            square = false;
        } else {
            for (int k = 1; k < a.length; k++) {
                if (a[k].length != columnCount) {
                    //return false; // Or:
                    square = false;
                    break;
                }
            }
        }
    }
    return square;
}

您不需要检查是否相应地创建了数组:

int[][] a = new int[M][N];

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM