将一维数组复制到二维数组的一行

AKS*_*AKS 0 java arrays multidimensional-array

int n = 5;
int[] oneD = new int[5];
int[] oneD2 = new int[5];
int[] oneD3 = new int[5];
.
.
.
n

int[][] twoD = new int[n][5];
Run Code Online (Sandbox Code Playgroud)

如何将java中的三个oned数组复制到二维数组的单独行?实际上,Java 8+ 中是否有一些简短而可爱的方便功能可以做到这一点?

And*_*eas 5

两种选择:

  1. 不要“复制”数组,使用它们:

    int[][] twod = new int[][] { oned, oned2, oned3 };
    
    Run Code Online (Sandbox Code Playgroud)

    或者:

    twod[0] = oned;
    twod[1] = oned2;
    twod[2] = oned3;
    
    Run Code Online (Sandbox Code Playgroud)

    例如twod[1][3]oned2[3]现在引用相同的值,因此更改一个会更改另一个。

  2. 复制数组内容:

    System.arraycopy(oned, 0, twod[0], 0, 5);
    System.arraycopy(oned2, 0, twod[1], 0, 5);
    System.arraycopy(oned3, 0, twod[2], 0, 5);
    
    Run Code Online (Sandbox Code Playgroud)

    twod 现在完全独立于其他数组。