我尝试在7行
中创建二维ArrayList
我得到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);
}
}
}
}
答案 0 :(得分:1)
如果您使用调试器,您应该能够看到这不会创建ArrayList
只有一系列对它们的引用,这些引用都是null
你的意图
List<Integer>[] g = new ArrayList[500];
for (int i = 0; i < g.length; i++)
g[i] = new ArrayList<>();