java二维数组请教,求个算法,难!

来源:百度知道 编辑:UC知道 时间:2024/06/02 19:50:24
有两个二位数组int[][] a 和int[][] b,我要用a数组的每一列匹配b数组的每一列,如a数组是:
1 2 3 4
4 5 6 7
b数组是:
7 8 9 10
11 12 13 14
匹配出来的第一个结果是:
2 2 2 2
5 5 5 5
7 8 9 10
11 12 13 14
第二个结果是:
1 1 1 1
4 4 4 4
7 8 9 10
11 12 13 14
依次类推,会有4个新的二维数组,比如有三个二维数组,或者更多的二维数组,能不能写一个通用的方法,得出所有的二维数组.
(循环我写过,不过晕了,谁写一下,得到的结果放在list里面,或者有更好的方法)产生的第一个数组和第二个数组位置放反了,应该是:
第一个结果是:
1 1 1 1
4 4 4 4
7 8 9 10
11 12 13 14
第二个结果是:
2 2 2 2
5 5 5 5
7 8 9 10
11 12 13 14

public class Main {

public static void main(String[] args) {
int[][] arrSource = {{1, 2, 3, 4},
{4, 5, 6, 7}};
int[][] arrTarget = {{7, 8, 9, 10},
{10, 11, 12, 13, 14}
};
int[][][] result = myMatch(arrSource, arrTarget);

}

/***
* 合并两二维数组
* @param arr1
* @param arr2
* @return
*/
private static int[][] arrUnion(int[][] arr1, int[][] arr2) {
int newRowCount = arr1.length + arr2.length;
int newColCount = arr1[0].length > arr2[0].length ? arr1[0].length : arr2[0].length;
int[][] unionedArr = new int[newRowCount][newColCount];
for (int i = 0; i < arr1.length; i++) {
for (int j = 0; j < arr1[0].length; j++) {
unionedArr[i][j] = arr1[i][j];
}
}
for (int i = arr1.le