[英]Print 3D array converted into a 2D
我正在嘗試添加給定的3D數組並將其打印為D。此外,我必須從給定的3d數組中獲取array [0]和[1]並將其對應的位置添加到2D Array中並添加它們。
例如,如果3D陣列具有以下2D矩陣
> Array[0] : {1,2,3},
>
> {4,5,6}
>
>
> Array[1] : {1,1,1},
>
> {1,1,1}
2D陣列應打印
{2,3,4},
>
> {5,6,7}
這是我的代碼。 但是,它給出以下錯誤:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 2
at ThreeDRay.add(ThreeDRay.java:53)
at ThreeDRayRunner.main(ThreeDRayRunner.java:53)
第53
是:
for (int j=0; j<b[j].length;j++)
但是我不知道這是怎么回事:
public static void add(int[][][]array){
int [][] b = new int[array[0].length][array[0][0].length];
for (int x=0; x<array.length;x++){
for (int y=0; y<array[0].length;y++){
for (int z=0; z<array[0][0].length;z++){
b[y][z] += array[x][y][z];
}
}
}
System.out.println ("Adding matrix at 0 and matrix at 1 ");
for (int i=0; i<b.length;i++){
for (int j=0; j<b[j].length;j++){
System.out.print(b[i][j]);
}
System.out.println();
}
}
}
for (int j=0; j<b[j].length;j++)
{
System.out.print(b[i][j]);
}
在這里,您采用的b[j]
長度可能超出范圍,因為稍后您將采用其他數組( b[i]
)。 只需在for
循環中執行b[i].length
,它就可以修復它。 請記住, for
循環是在每次迭代之前檢查條件,而不僅僅是在創建時。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.