簡體   English   中英

將2D Array填入3D Array in Java

[英]Filling in 2D Array into 3D Array in Java

我想寫一個方法,我得到一個 3x6 workingArray(但也可能是 3x5、3x4...)和一個 3x3(也可能大小不同)filteringArray 並制作一個 3D 數組(holdArrays),我將第一個數組放入制作一個正方形(在本例中為 3x3),然后移動一個 position 並放入另一個 3x3,直到覆蓋 workingArray 的最后一列。

不知何故,我在“//受影響的行”中得到了一個 nullPointerException,但我不明白為什么。 所以我想知道我是否以正確的方式執行此操作,而且我還沒有找到有關如何將 2D Arrays 放入 3D 數組的資源。

例子:

1 2 3 4      1 2 3       2 3 4
5 6 7 8  to  5 6 7  and  6 7 8
9 1 2 3      9 1 2       1 2 3
private static void filtering(double[][] workingArray, double[][] filteringArray) {
    
    // creating amount of holdArrays to work with filterArray
    double[][][] holdArrays = new double[workingArray.length - filteringArray.length + 1][filteringArray.length][];

        // filling in the parted workingArray into holdArrays
        for (int i = 0; i < holdArrays.length; i++) {

            for (int j = 0; j < filteringArray.length; j++) {

                for (int k = 0; k < filteringArray[j].length; k++) {

                    holdArrays[i][j][k] = workingArray[j][k]; //affected line
                }
            }
        }
    }

未指定最后一個維度的大小。 並且由於行
holdArrays[i][j][k]嘗試訪問不存在的第 k 個元素,它會拋出 Null 指針異常。

 double[][][] holdArrays = new double[workingArray.length - filteringArray.length + 1][filteringArray.length][];

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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