如何创建一个 3 维列表数组,其中每个元素都包含一个 ArrayList?
我需要外部对象,即数组本身,是“静态的”,并且不能使用数组列表,因为它倾向于调整自身大小。 每个元素的内部列表预计会定期调整大小,这就是我需要数组列表的原因。
理论上,下面的代码看起来是正确的。但是,运行时会产生空指针异常。
public List<ArrayList<Algae>>[][][] populate(int val, int size) {
List<ArrayList<Algae>>[][][] pond = new List[size][size][size];
for (int i = 0; i < size; i++) {
for (int j = 0; j < size; j++) {
for (int k = 0; k < size; k++) {
pond[i][j][k].add(new ArrayList<Algae>(2));
}
}
}
for (int i = 0; i < size; i++) {
for (int j = 0; j < size; j++) {
for (int k = 0; k < size; k++) {
for (int c = 0; c < val; c++) {
pond[i][j][k].get(0).add(new Algae());
}
}
}
}
return pond;
}
最佳答案
要修复 NPE,您应该初始化数组的最里面的项:
for(int k = 0; k < size; k++)
{
pond[i][j][k] = new ArrayList<ArrayList<Algae>>(2);
pond[i][j][k].add(new ArrayList<Algae>());
}
关于java - 列表数组中的 ArrayList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61178935/