我有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
,但无法弄清楚如何在这里使用它。
答案 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