在JAVA中将一维数组转换为二维数组

在JAVA中将一维数组转换为二维数组,java,arrays,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("ind

我试图在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();
 }
这意味着我从1d数组中得到了错误的索引。
我哪里出错了?

你的错误是,在每一步中,你都要乘以行数,而不是列数


如果要访问第二行的第一个元素,必须首先跳过第一行的所有元素。这将是
1*arr[0]。长度
。因此,您的方法可以在X×X数组中工作,但不能在X×Y数组中工作。

它很可能是在二维中填充,但((i*arr.length)+j)可能只是在添加值。我会在它的中间加上“+”,“看看实际输出的是什么。

在你的循环中尝试这个-< /p>
((i*arr[0].length) + j) 

您应将索引公式更改为:

(i*arr.length) + j

(i*arr[i].length) + j
您可以尝试以下方法:

    int count = 0;
    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[count++];
             System.out.print("  " + arr[i][j]);

         }
    System.out.println();
     }
int count=0;
对于(int i=0;i
int[]input2={0,1,0,0,0,1,1,0,1,0};
int[]arr=新的arr[3][4];
对于(int i=0;i对于(int j=0;j查看索引号。我已经提到我正在尝试将值从一维数组输入到二维数组。我们不明白您想在二维数组中输入什么。您能澄清一下您是否想要索引号和值以及它们以何种方式显示吗?@WillCampbell:我想使用I命令将一维数组中的值输入到二维数组中一维数组中的ndex。@Pshemo:2d数组中的行数=3,n列数=4在我的例子中。您似乎已经尝试过使用R=3和C=3。您能在代码中添加每个数组的精确维数吗?
    int count = 0;
    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[count++];
             System.out.print("  " + arr[i][j]);

         }
    System.out.println();
     }
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[i].length) + j) );
                 arr[i][j] = input2[(i*(arr[i].length)) + j];
                 //System.out.print("  " + arr[i][j]);

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