通过方法传递数组时,将数组数据存储到二维数组

时间:2016-11-16 14:53:46

标签: java arrays

需要将传入的数组存储为单个二维数组。

[7, 7, 7, 7, 7]
[7, 7, 7, 7, 7]
[1, 1, 1, 1, 1]
[9, 9, 9, 9, 9]
[7, 7, 7, 7, 7]
[0, 0, 0, 0, 0]
[6, 6, 6, 6, 6]
[6, 6, 6, 6, 6]
[1, 1, 1, 1, 1]

无效示例输出1

addr_len

我尝试这样做的每次尝试都会导致错误。我假设是我正在尝试将数组存储到2d数组的传统方法,并且所有数组信息都是已知的并且可以在手边访问。当我尝试这样做时,一次只调用一个数组,我无法让它工作。

2 个答案:

答案 0 :(得分:3)

一个选项是让您的processArray()方法只需使用输入数组向二维数组添加新行。然后,维护2D数组的索引以跟踪您的位置。

public class Question {

    private static int[][] processedArrayData;
    private static int index = 0;

    public static void processArrays(int[] incoming) {
        //for (int i=0; i < incoming.length; ++i) {
        //    processedArrayData[index][i] = incoming[i];
        //}
        // edit by @FelixNovovic
        processedArrayData[index] = incoming

        ++index;
    }

    public static void main(String[] args) {
        int[] array1 = {7, 7, 1, 3, 3};
        int[] array2 = {9, 7, 0, 3, 8};
        int[] array3 = {6, 6, 1, 3, 2};
        processedArrayData = new int[3][5];

        processArrays(array1);
        processArrays(array2);
        processArrays(array3);
    }
}

答案 1 :(得分:2)

您需要创建类Question的实例或使变量也是静态的。

static int[][] processedArrayData = new int[3][];
static int idx = 0;

public static void processArrays(int[] incoming) {
    processedArrayData[ idx++ ] = incoming;
}