话不多说,直接来方案
方案需要的材料
A,B为两个二维数组
C为一个一维数组
- 第一种方法
利用一个一维数组来做两个二维数组遍历的中间量;即把A数组的所有元素全部遍历到C,在用C数组的所有元素全部遍历到B。最后实现A–>B的过程(有点像汉诺塔)
代码展示:
public void swap() {
int[][] A =new int[3][4];
int[] temp =new int[3*4];
int[][] B = new int[2][6];
int count = 0;
for (int i = 0; i < 3 ; i++) {
for (int j = 0; j < 4; j++) {
temp[count++] = A[i][j];
}
}
count = 0; //一定要初始化
for(int c = 0; c < 2; c++) {
for(int d = 0; d < 6; d++) {
B[c][d] = temp[count++];
}
}
}
- 第二种方法(一条语句就遍历成功)
public void swap() {
int[][] a =new int[3][4];
int[][] b = new int[2][6];
//给a数组赋值
for (int s = 0; s < 3*4; s++) {
a[s/4][s%4] = s;
System.out.print(a[s/4][s%4]+"\t");
}
System.out.println();
//a遍历到b(其实就是把这个二维数组排扁成了一个一维数组)
for (int i = 0; i < 3*4; i++) {
b[i/6][i%6] = a[i/4][i%4];//遍历语句 注意 除数都是他们的列数;
System.out.print(b[i/6][i%6]+"\t");
}
}
这种方法看不懂 就用笔画一下,写一下,一下就通透啦。