获取2D数组的行和列计数而不迭代它

Ani*_*kur 15 java matrix multidimensional-array

我有一个带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

}
Run Code Online (Sandbox Code Playgroud)

主要代码是

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);
} 
Run Code Online (Sandbox Code Playgroud)

matrix.length给了我4.所以我猜它是行数,这意味着1D数组中的引用数量本身包含数组.那么有没有办法在没有迭代的情况下获得计数?

Aln*_*tak 53

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

int rows = matrix.length;
int cols = matrix[0].length;  // assuming rows >= 1
Run Code Online (Sandbox Code Playgroud)

(在数学这当然是保证的,但它很可能在大多数语言有阵列,其中内阵列的阵列不是所有相同的长度).


Nik*_*mar 5

int row = mat.length;
int col= mat[0].length;
Run Code Online (Sandbox Code Playgroud)

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