web-dev-qa-db-ja.com

反復せずに2D配列の行数と列数を取得する

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);
} 

また、matrix.lengthは私に4。したがって、それ自体が配列を含む1D配列の参照の数を意味するのは、行の数だと思います。繰り返しずにカウントを取得する方法はありますか?

15
Aniket Thakur

各行の長さが同じであることが保証されている場合は、次を使用します。

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

(数学ではもちろんこれは保証されていますが、ほとんどの言語では、内部配列がnotすべて同じ長さの配列の配列を持つことはかなり可能です)。

53
Alnitak
int row = mat.length;
int col= mat[0].length;

ほとんどの配列では、すべての行の長さが同じです。したがって、上記のソリューションはほぼ毎回機能します。

4
Nikhil Kumar