java - JAVA中一维数组转换为二维数组

标签 java arrays

我正在尝试将一维数组中的值输入到java中的二维数组中。

这是我到目前为止所拥有的:

int[] input2 = {
    0, 1, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0
};
int[][] arr = new arr[3][4];

for (int i = 0; i < arr.length; i++) {
    for (int j = 0; j < arr[i].length; j++) {
        System.out.println("index" + ((i * arr.length) + j));
        arr[i][j] = input2[(i * arr.length) + j];
        //System.out.print("  " + arr[i][j]);

    }
    //System.out.println();
 }

但是它输出的是:

index0
index1
index2
index3
index3
index4
index5
index6
index6
index7
index8
index9

这意味着我从一维数组中得到的索引是错误的。 我哪里出错了?

最佳答案

您的错误在于,在每一步中您都乘以数,而不是数。

如果你想到达第二行的第一个元素,你必须先跳过第一行的所有元素。那将是 1 * arr[0].length。因此,您的方法可能适用于 X by X 数组,但不适用于 X by Y 数组。

关于java - JAVA中一维数组转换为二维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30538944/

相关文章:

javascript - 需要帮助将数组转换为多数组

java - 如何在启动时将 Maven 作为守护进程或独立运行

c - 指针未初始化的问题

javascript - 将对象添加到 javascript 数组,其中列表指定类型

java - 为什么 Collections 类中的不可修改方法不使用新元素创建集合?

php - 用缺少的键填充多维数组

javascript - MongoDB-通过将集合与对象数组进行比较来返回现有字段的数组

java - Spring Webflow IllegalStateException : Neither BindingResult nor plain target object for bean name available as request attribute

java - 具有 4162 行的结果集仅遍历第一行

Java - 回到静态方法的继承