我的代码:
import java.util.Random;
import java.util.ArrayList;
public class Percolation {
ArrayList<int[]> grid;
Random dice = new Random();
public Percolation(int n){
for(int i=0;i<n;i++){
grid.add(new int[n]);
}
output(grid,n);
}
public void output(ArrayList<int[]> x,int n){
for(int i=0;i<n;i++)
for(int j=0;j<n;j++)
System.out.println(x.get(i)[j]);
}
public static void main(String[] args){
Percolation p = new Percolation(2);
}
}
使用此代码会在NullPointerException
处抛出grid.add(new int[n])
。如何将数据添加到grid
?
答案 0 :(得分:3)
您尚未初始化ArrayList
。
ArrayList<int[]> grid = new ArrayList<>();
答案 1 :(得分:0)
import java.util.Random;
import java.util.ArrayList;
public class Percolation {
ArrayList<int[]> grid = new ArrayList<>(); // Initialize the array List here before using
Random dice = new Random();
public Percolation(int n){
for(int i=0;i<n;i++){
grid.add(new int[n]);
}
output(grid,n);
}
public void output(ArrayList<int[]> x,int n){
for(int i=0;i<n;i++)
for(int j=0;j<n;j++)
System.out.println(x.get(i)[j]);
}
public static void main(String[] args){
Percolation p = new Percolation(2);
}
}
答案 2 :(得分:0)
如果没有初始化,则无法在列表中添加元素。
您还可以在ArrayList
中传递另一个<>
,例如:
ArrayList<ArrayList> grid = new ArrayList<>();
因为它很有活力。