获取 2D 数组的行和列计数,而无需对其进行迭代

2022-09-03 03:16:20

我有一个接受2D数组的函数。我想知道是否无论如何都可以获得2D数组的行和列,而无需对其进行迭代。方法签名不得更改。

函数位于类内部。ninetyDegRotator

public static int [][] rotate(int [][] matrix){

    int [][] rotatedMatrix = new int[4][4];//need actual row n col count here
    return rotatedMatrix; //logic

}

主代码是

public static void main(String args[]){

    int [][] matrix = new int[][]{
            {1,2,3,4},
            {5,6,7,8},
            {9,0,1,2},
            {3,4,5,6}
    };

    System.out.println("length is " + matrix.length);
    int [][] rotatedMatrix = ninetyDegRotator.rotate(matrix);
} 

还给了我.所以我想这是行数,它给出了1D数组中引用的数量,这些引用本身包含数组。那么有没有办法在不迭代的情况下获得计数呢?matrix.length4


答案 1

如果保证每行具有相同的长度,只需使用:

int rows = matrix.length;
int cols = matrix[0].length;  // assuming rows >= 1

(在数学中,这当然是有保证的,但在大多数语言中很有可能有一个数组数组,其中内部数组的长度并不完全相同)。


答案 2
int row = mat.length;
int col= mat[0].length;

大多数情况下,在数组中,所有行的长度都相同。因此,上述解决方案几乎每次都有效。


推荐