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

标签 java arrays

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

public class Question {

    static int row = 5;
    static int column = 3;
    static int[][] processedArrayData;

    public static void processArrays(int[] incoming) {
        processedArrayData = new int[column][row];

        /*
         * Need to store each incoming array as 
         * a single two dimensional array
         */

        // This attempt gives me invalid data See "Invalid Example Output 1"
          for (int i = 0; i < column; i++) {
                for (int j = 0; j < row; j++) {
                    processedArrayData[i][j] = incoming[i];
                }
            }
            for (int[] arr : processedArrayData) {
                System.out.println(Arrays.toString(arr));
            }




    }

    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};

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

}

无效示例输出 1

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

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

最佳答案

一个选择是让您的 processArray() 方法使用输入数组简单地向二维数组添加一个新行。然后,在二维数组中维护一个索引以跟踪您的位置。

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);
    }
}

关于java - 通过方法传递数组时将数组数据存储到二维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40635194/

相关文章:

java - 从 Objective-C 到 Swift Base64 和 HMACSHA1

javascript - 为什么这种二分搜索实现会使浏览器无响应?

ruby-on-rails - 数组元素的 Ruby 索引

java - 基于时间戳和电话号码的加盐随机数

c - 将可变长度的2D数组传递给函数

PHP:数组 $_POST 循环问题

php - 计算(设置)PHP 中数组之间的差异?

java - 我是否需要在 DAO 实现中使用 setter 或构造函数

java - Gradle EBean 增强 - 实体未增强

java - pager taglib 没有按照记录重命名导出的 url 变量