Вы должны были бы использовать вместо размера.
grid[x][y].length
Однако, вы должны помнить, вы только получаете размер [z]
части массива.
Если вы хотите получить количество «ячеек» в сетке, вам нужно будет скомпоновать все элементы сетки.
totalsize = grid.length*grid[x].length*grid[x][y].length;
Даже тогда вы должны гарантировать, что размер массива в x y and z
постоянен между всеми элементами.
Помните, что это массивы массивов, и они не соответствуют друг другу.
Например,
public static void main(String[] args) {
int[][] foo = new int[][] {
new int[] { 1, 2, 3 },
new int[] { 1, 2, 3, 4},
};
System.out.println(foo.length); //2
System.out.println(foo[0].length); //3
System.out.println(foo[1].length); //4
}
Опасности ...
int nir[][] = new int[5][];
nir[0] = new int[5];
nir[1] = new int[3];
System.out.println(nir[0].length); // 5
System.out.println(nir[1].length); // 3
System.out.println(nir[2].length); // Null pointer exception
длины столбцов отличаются для каждой строки. Если вы поддерживаете некоторые данные с помощью 2D-массива с фиксированным размером, то предоставляйте получателям фиксированные значения в классе-оболочке.
PS. Вы не можете сделать grid[x][y][0].length
, потому что вы обращаетесь к определенному элементу.
'.length' дает длину массива в Java. –
Каков тип вашего массива? Являются ли элементы ** строками **? –
Если элементы 'int''s, то вы в основном спрашиваете, как найти длину определенного' int'. Это 32 бита. Вероятно, это не то, что вы ищете, поэтому вам, вероятно, нужно переосмыслить то, что вы пытаетесь спросить. – ajb