-4

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

4

5 回答 5

3

嗯,首先,javaarrays有固定的内存和大小,所以要连接两个数组,你必须创建一个大小为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视为已经存在的。

于 2013-05-24T15:21:32.980 回答
3

您可以使用

ArrayUtils.addAll方法。根据文档

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

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

所以你可以使用喜欢

resultArray[] = ArrayUtils.addAll(firstArray, SecondArray);
于 2013-05-24T15:25:51.247 回答
1

创建您的 Object[] 数组,然后在您的 foo1[] 上执行第一个循环以手动添加到 object[],然后重复 foo2[]。

野蛮人,但简单高效

于 2013-05-24T15:21:17.170 回答
1

一种衬垫解决方案:

Object[] both = ArrayUtils.addAll(array1,array2);
于 2013-05-24T15:23:27.420 回答
0

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

或者最好还是使用 ArrayList 并使用 .addAll() 方法

于 2013-05-24T15:24:48.257 回答