在左右扩展java 2d数组

时间:2013-07-23 11:10:25

标签: java arrays

我有2D java数组,例如:

int[]][]arr = {{1, 2, 3, 4, 5, 6}, {7, 8, 9, 10, 11, 12}}

我想将其左右两列复制到数组的左右两侧。这是我的目标:

int[][] arr = {{5, 6, 1, 2, 3, 4, 5, 6, 1, 2}, {11, 12, 7, 8, 9, 10, 11, 12, 7, 8}}

在现实生活中,我的阵列非常大(1500x600),我需要一个快速的解决方案。 我知道System.arraycopy,但无法弄清楚如何在这里使用它。

1 个答案:

答案 0 :(得分:2)

对于您发布的数组,例如:

int[][] arr1 = {{1, 2, 3, 4, 5, 6}, {7, 8, 9, 10, 11, 12}}
int[][] arr2 = new int[2][10];

// ...

for(int n = 0; n < arr1.length; n++) {
    System.arrayCopy(arr1[n], 0, arr2[n], 0, 2);
    System.arrayCopy(arr1[n], 0, arr2[n], 2, 6);
    System.arrayCopy(arr1[n], 4, arr2[n], 6, 2);
}

// here arr2 will have what you want