将两个数组合并在一起

时间:2013-05-24 15:18:49

标签: java

如何将两个数组合并/连接到一个? 我看到this帖子,但是我需要一个可以连接两个不同数组的解决方案,这两个数组都扩展了同一个类。例如foo1 extends Object和foo2扩展Object,然后我需要连接 foo1 []和foo2 []到Object []数组。

5 个答案:

答案 0 :(得分:3)

嗯,首先,java arrays具有固定的内存和大小,因此要连接两个数组,您必须创建一个大小为arrOne.length + arrTwo.length的新数组,并迭代数组的值并将它们添加到新数组中。

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];    
}

这将没有任何额外的工具 - 普通的java。 arrOnearrTwo被视为已存在的。

答案 1 :(得分:1)

你可以使用

ArrayUtils.addAll方法。符合doc

  

将给定数组的所有元素添加到新数组中。

     

新数组包含array1的所有元素,后跟所有元素   元素array2。返回数组时,它始终是新数组   阵列。

所以你可以使用

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

答案 2 :(得分:0)

创建你的Object []数组,然后在你的foo1 []上做第一个循环,手动添加到对象[],然后重复foo2 []。

野蛮人,简单而有效

答案 3 :(得分:0)

单线解决方案:

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

答案 4 :(得分:0)

为什么不创建一个类型对象的数组,它是foo1 [] + foo2 []长度的组合长度。然后迭代每个数组并添加到Object []或使用您提供的链接中的答案:How can I concatenate two arrays in Java?

或者更好的是仍然使用ArrayList并使用.addAll()方法