2017-04-07 36 views
1

我的代碼:獲得NullPointerException異常,同時增加元素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); 
    } 
} 

使用此代碼拋出一個NullPointerExceptiongrid.add(new int[n])。我如何將數據添加到grid

回答

3

您還沒有初始化ArrayList

ArrayList<int[]> grid = new ArrayList<>(); 
+0

This works。謝謝 –

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); 
} 
} 
+0

是的,剛剛意識到,謝謝。 –

0

沒有初始化,你不能在列表中添加元素。

而且你還可以通過另一種ArrayList<>例如爲:

ArrayList<ArrayList> grid = new ArrayList<>(); 

因爲它是非常動態的。

相關問題