なぜこれがうまくいかないのか、誰かが私に説明してもらえますか:
int[][] array = new int[0][5];
int n = array[0].length;
これは機能しますが:
int[][] array = new int[5][5];
int n = array[0].length;
この問題に遭遇したとき、NxN 配列の幅と高さを見つけるために単体テストを行っていました。
サイズ5の配列を保持するゼロサイズの配列を作成しています
int[][] array = new int[0][5];
少なくとも 1 の次元を指定する必要があります
int[][] array = new int[1][5];
基本的に一次元配列になります
int[] array = new int[5];
int[][] a = new int[x][y]
x
size の配列を作成するループの略記ですy
:
int[][] a = new int[x][];
for (int i = 0; i < x; i++)
a[i] = new int[y];
x
サイズの配列が作成されないため、ゼロの場合はy
無関係y
です。x
実際、一般的なケースでは、配列が同じサイズである必要がある、または存在する必要がある理由はありません。なぜなら、 a の要素のいずれかが配列null
ではなく単に存在する可能性があるからint
です。
int[][] a = new int[0][5];
サイズがゼロの配列を作成しようとしていfirst []
ます。size
array
例:
int[][] a = new int[2][4];
a = {(1,2,3,4}, {5,6,7,8}}
System.out.println(a.length);// would return `2`