在java中水平组合两个2D数组

时间:2016-09-12 21:16:10

标签: java arrays

我正在尝试水平组合两个2D数组a,b,如果:

a = [[1, 1],
     [1, 1]]
b = [[2, 2],
     [2, 2]]

然后合并的数组c应该如下所示:

c = [[1, 1, 2, 2],
     [1, 1, 2, 2]]

垂直组合非常简单,然后看起来像这样:

d = [[1, 1],
     [1, 1],
     [2, 2],
     [2, 2]]

但我想横向组合它们。有关如何为具有相同尺寸的两个2D阵列实现此目的的任何想法吗?

1 个答案:

答案 0 :(得分:1)

如果数组a和b的维数相同(即对于某些正整数x和y):

int[][] a = new int[x][y];
int[][] b = new int[x][x];

然后创建一个新数组:

int[][] c = new int[2*x][y];

并使用嵌套的for循环来填充相应的元素:

public class Main {
        public static void main(String[] args) {
            int[][] a = {{1,1},{1,1}};
            int[][] b = {{2,2},{2,2}};

        int[][] c = new int[2*a.length][a.length];

        for(int i = 0; i < 2*a.length; i++) {
            for (int j = 0; j < a.length; j++) {
                if (i < a.length) {
                    c[i][j] = a[i][j];
                } else {
                    c[i][j] = b[i - a.length][j];
                }
            }
        }
    }

}