gpt4 book ai didi

java - 如何在Java中正确动态地初始化多维数组?

转载 作者:行者123 更新时间:2023-12-02 10:01:25 25 4
gpt4 key购买 nike

问。 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];

因此,我想了解初始化动态数组的正确方法。

最佳答案

您必须在外循环中分配一个新的int[][]。比如,

n[h] = in.nextInt(); //inner square metric dimensions
a[h] = new int[n[h]][n[h]]; //add this

关于java - 如何在Java中正确动态地初始化多维数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55601718/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com