如何将两个数组合并/连接到一个? 我看到this帖子,但是我需要一个可以连接两个不同数组的解决方案,这两个数组都扩展了同一个类。例如foo1 extends Object和foo2扩展Object,然后我需要连接 foo1 []和foo2 []到Object []数组。
答案 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。 arrOne
和arrTwo
被视为已存在的。
答案 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()方法