如何将两个数组合并/合并为一个?我看到了这篇文章,但是我需要一个可以连接两个不同数组的解决方案,它们都扩展了同一个类。例如 foo1 扩展 Object 和 foo2 扩展 Object,然后我需要将 foo1[] 和 foo2[] 连接到 Object[] 数组。
问问题
32276 次
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 回答