关于java:将两个数组合并在一起

Merge two arrays together

本问题已经有最佳答案,请猛点这里访问。

如何将两个数组合并/合并为一个?我看到了这篇文章,但是我需要一个解决方案,它可以连接两个不同的数组,这两个数组都扩展了同一个类。例如foo1扩展对象,foo2扩展对象,然后我需要concatfoo1[]和foo2[]到对象[]数组。


首先,Java EDCOX1(0)具有固定的内存和大小,所以为了适应两个数组,必须创建一个新的EDCOX1的大小为1的数组,并且只需迭代数组的值并将它们添加到新数组中。

1
2
3
4
5
6
7
8
9
Object[] arrThree = new Object[arrTwo.length + arrOne.length];
int index = arrTwo.length;

for (int i = 0; i < arrTwo.length; i++) {
    arrThree[i] = arrTwo[i];
}
for (int i = 0; i < arrOne.length; i++) {
    arrThree[i + index] = arrOne[i];    
}

这将不需要任何额外的UTIL——纯Java。arrOnearrTwo被认为是已经存在的。


你可以使用

arrayutils.addall方法。符合DOC

Adds all the elements of the given arrays into a new array.

The new array contains all of the element of array1 followed by all of
the elements array2. When an array is returned, it is always a new
array.

所以你可以像

1
resultArray[] = ArrayUtils.addAll(firstArray, SecondArray);


为什么不创建一个类型为object的数组,它是foo1[]的组合长度+foo2[]的长度。然后,要么迭代每个数组并添加到对象[]中,要么使用所提供的链接中的答案:如何在Java中连接两个数组?

或者最好还是使用arraylist,并使用.addall()方法


一个线性解决方案:

1
Object[] both = ArrayUtils.addAll(array1,array2);


创建对象[]数组,然后对foo1[]执行第一个循环以手动添加到对象[],然后对foo2[]重复此操作。

野蛮人,但简单高效