Получение длины двумерного массива
Как получить второе измерение массива, если я этого не знаю? array.length
дает только первое измерение.
Например, в
public class B {
public static void main(String [] main){
int [] [] nir = new int [2] [3];
System.out.println(nir.length);
}
}
как бы получить значение второго измерения nir
, которое равно 3.
Спасибо
Ответы
Ответ 1
где 3?
Вы создали многомерный массив. nir
- массив массивов int; у вас есть два массива длиной три.
System.out.println(nir[0].length);
даст вам длину вашего первого массива.
Также стоит отметить, что вам не нужно инициализировать многомерный массив, как вы это делали, а это значит, что все массивы не должны быть одинаковой длины (или вообще существуют).
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
Ответ 2
Ты можешь сделать:
System.out.println(nir[0].length);
Но учтите, что в Java нет реального двумерного массива. Каждый массив "первого уровня" содержит другой массив. Каждый из этих массивов может быть разных размеров. nir[0].length
не обязательно совпадает с размером nir[1].length
.
Ответ 3
использовать
System.out.print( nir[0].length);
посмотрите на этот цикл, который печатает содержимое массива 2 измерений
второй цикл повторяется по столбцу в каждой строке
for(int row =0 ; row < ntr.length; ++row)
for(int column =0; column<ntr[row].length;++column)
System.out.print(ntr[row][column]);
Ответ 4
int secondDimensionSize = nir[0].length;
Каждый элемент первого измерения фактически представляет собой другой массив с длиной второго измерения.
Ответ 5
Здесь представлено полное решение о том, как перечислять элементы в двумерном массиве без зубьев (с 3 строками и от 3 до 5 столбцов):
String row = "";
int[][] myArray = {{11, 12, 13}, {14, 15, 16, 17}, {18, 19, 20, 21, 22}};
for (int i=0; i<myArray.length; i++) {
row+="\n";
for (int j = 0; j<myArray[i].length; j++) {
row += myArray[i][j] + " ";
}
}
JOptionPane.showMessageDialog(null, "myArray contains:" + row);
![Содержимое массива Jagged]()
Ответ 6
В последней версии JAVA вот как вы это делаете:
nir.length //is the first dimension
nir[0].length //is the second dimension
Ответ 7
nir[0].length
Примечание 0: в вашем массиве должен быть минимум один массив.
Примечание 1: Не все подмассивы не нужны одинаковой длины.
Ответ 8
Предполагая, что длина одинакова для каждого массива во втором измерении, вы можете использовать
public class B {
public static void main(String [] main){
int [] [] nir= new int [2] [3];
System.out.println(nir[0].length);
}
}
Ответ 9
Помните, что 2D array
не является 2D array
в реальном смысле. Каждый элемент массива сам по себе является массивом, не обязательно такого же размера.
поэтому nir[0].length
может быть или не быть равно nir[1].length
или nir[2]length
.
Надеюсь, что поможет..:)
Ответ 10
Расширение для общей длины многомерного массива,
Как правило, для вашего случая, так как форма 2D-массива "квадрат".
int length = nir.length * nir[0].length;
Однако для 2D-массива каждая строка может не иметь одинакового числа элементов.
Поэтому нам нужно пройти через каждую строку, добавить количество элементов вверх.
int length = 0;
for ( int lvl = 0; lvl < _levels.length; lvl++ )
{
length += _levels[ lvl ].length;
}
Если массив N-D, что означает, что нам нужен N-1 для цикла, чтобы получить размер каждой строки.