[英]Printing 3D Arrays
我正在嘗試打印3D陣列。 這是我的代碼:
public static void print(int [][][] array)
{
for (int i=0; i<array.length; i++ )
{
for (int x=0; x<array[i].length;x++)
{
System.out.println();
System.out.print("row "+ x);
for (int j=0; j<array[i][x].length;j++)
{
System.out.print (array[i][x][j]+ " ");
}
}
}
我做錯什么了嗎? 每次我打電話
ThreeDRay.print(d3);
我收到此錯誤:
在ThreeDRayRunner.main(ThreeDRayRunner.java:54)的ThreeDRay.print(ThreeDRay.java:13)處的線程“ main”中的java.lang.NullPointerException異常
其余代碼如下:
public static void main( String args[] )
{
Scanner keyboard = new Scanner(in);
out.print("How many matrices do you wish to enter? :: ");
int matCnt = keyboard.nextInt();
//instantiate a ThreeDRay
int[][][] d3= new int [matCnt][][];
for (int x=0; x < d3.length ;++x){
d3[x] = new int[0][0];
for(int i = 0; i < matCnt; i++)
{
out.print("What is the size of matrix " + i + " : ");
int size = keyboard.nextInt();
int[][] mat = new int[size][size];
out.println();
for(int r=0; r<mat.length; r++)
{
for(int c=0; c<mat[r].length; c++)
{
out.print("Enter a value for spot " + r + " - " + c + " :: ");
mat[r][c]=keyboard.nextInt();
}
}
if (i==0 && i<matCnt)
{
for (int l=0; l<=matCnt; l++){
out.println("\nThreeDRay before setting mat at spot "+l);
}
}
ThreeDRay.print(d3);
d3[i] = mat;
out.println("\nThreeDRay after setting mat at spot "+i);
ThreeDRay.print(d3);
我必須證明我如何填充矩陣
//user inputs values for first matrix
在添加之前:
數組[0] =
數組[1] =
數組[2] =
//添加用戶輸入
添加后:
數組[0] =行0 = [...]
row 1 = [...] ... depending on user given size of the first matrix Array[1] = Array[2] =
//詢問第二個矩陣的輸入
在添加之前
數組[0] =行0 = [...]
row 1 = [...] ... depending on user given size of the first matrix Array[1] = Array[2] =
添加后
數組[0] =行0 = [...]
row 1 = [...] ... depending on user given size of the first matrix
數組[1] =行0 = [...]
row 1 = [...] ... depending on user given size of the first matrix
數組[2] =
您需要在此for循環中關閉花括號:
for (int x = 0; x < d3.length; ++x) {
d3[x] = new int[0][0];
}
如果沒有大括號,您的程序將僅初始化d3
一個元素,而其余元素仍為null之后,將繼續進入下一個for循環,當您嘗試打印正在執行的整個d3
時,將給出NullPointerException
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.