なぜこれがうまくいかないのか、誰かが私に説明してもらえますか:
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]xsize の配列を作成するループの略記です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 []ます。sizearray
例:
int[][] a = new int[2][4];
a = {(1,2,3,4}, {5,6,7,8}}
System.out.println(a.length);// would return `2`