簡體   English   中英

將3D陣列打印轉換為2D

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM