我尝试创建二维 ArrayList
我在第 7 行得到 NullPointerException
ArrayList<Integer>[] g = new ArrayList[500];
for(int i = 1;i < HEIGHT - 1; i++){
for(int j = 1;j < WIDTH - 1; j++){
if(MAP[i][j] == 0){
int cur = i * HEIGHT + j;
if(MAP[i+1][j] == 0){
g[cur].add(cur + HEIGHT);
}
if(MAP[i-1][j] == 0){
g[cur].add(cur - HEIGHT);
}
if(MAP[i][j+1] == 0){
g[cur].add(cur + 1);
}
if(MAP[i][j-1] == 0){
g[cur].add(cur - 1);
}
}
}
}
最佳答案
如果您使用调试器,您应该能够看到这不会创建一个ArrayList
,而只是创建一个对它们的引用数组,这些引用全部为null
你的意图是
List<Integer>[] g = new ArrayList[500];
for (int i = 0; i < g.length; i++)
g[i] = new ArrayList<>();
关于java - java Arraylist 中的空指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38292044/