在向ArrayList添加元素时获取NullPointerException

时间:2017-04-07 05:26:53

标签: java arraylist

我的代码:

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

3 个答案:

答案 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<>();

因为它很有活力。