Q.Как динамически инициализировать массивы в Java?
Я пытаюсь сохранить некоторые показатели в массивах, используя следующий код.
public static void main (String[] args) {
Scanner in = new Scanner(System.in);
int t = in.nextInt(); // outer metric size
int [] n = new int[t]; // inner square metric e.g. 3x3
int [][][] a = new int[t][][]; // e.g. 2x3x3, 10x3x3
//input block
for (int h=0; h<t; h++){
n[h] = in.nextInt(); //inner square metric dimensions
for (int i=0;i<n[h];i++){
for (int j=0;j<n[h];j++){
a[h][i][j] = in.nextInt(); //metric values
}
}
}
приводит к исключению нулевого указателя, которое, в свою очередь, является ожидаемой ошибкой ссылки на массив.Изменение массивов на фиксированный размер не вызывает этой проблемы, как ожидалось.
int [] n = new int[70];
int [][][] a = new int[70][10][10];
Поэтому я хотел бы понять, как правильно инициализировать динамические массивы.