以下是不使用arraycopy的方式将两个2D数组追加在一起的示例代码:
public class ArrayAppendExample {
public static void main(String[] args) {
int[][] array1 = {{1, 2, 3}, {4, 5, 6}};
int[][] array2 = {{7, 8, 9}, {10, 11, 12}};
int[][] result = appendArrays(array1, array2);
// 打印结果
for (int[] row : result) {
for (int element : row) {
System.out.print(element + " ");
}
System.out.println();
}
}
public static int[][] appendArrays(int[][] array1, int[][] array2) {
int numRows = array1.length + array2.length;
int numCols = array1[0].length;
int[][] result = new int[numRows][numCols];
// 复制第一个数组的元素到结果数组
for (int i = 0; i < array1.length; i++) {
for (int j = 0; j < array1[i].length; j++) {
result[i][j] = array1[i][j];
}
}
// 复制第二个数组的元素到结果数组
for (int i = 0; i < array2.length; i++) {
for (int j = 0; j < array2[i].length; j++) {
result[array1.length + i][j] = array2[i][j];
}
}
return result;
}
}
这个示例中,我们首先计算出结果数组的行数和列数,然后根据这些尺寸创建一个新的二维数组。接下来,我们使用两个嵌套的循环,将第一个数组的元素复制到结果数组的前半部分,然后将第二个数组的元素复制到结果数组的后半部分。
最后,我们打印结果数组以验证是否成功追加了两个数组。输出应该是:
1 2 3
4 5 6
7 8 9
10 11 12