Merge two arrays together
如何将两个数组合并/合并为一个?我看到了这篇文章,但是我需要一个解决方案,它可以连接两个不同的数组,这两个数组都扩展了同一个类。例如foo1扩展对象,foo2扩展对象,然后我需要concatfoo1[]和foo2[]到对象[]数组。
- dup stackoverflow.com/questions/80476/…
- stackoverflow.com/questions/80476/…如何不覆盖您?复制品。
- 在您的案例中,每个问题答案中提出的解决方案中有哪些部分无法实现?
- 找到合适的类型似乎是个问题,所以最好多和我们分享一些关于这方面的想法。在爪哇,Foo1和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。arrOne和arrTwo被认为是已经存在的。
- System.arraycopy(arrOne, 0, arrThree, 0, arrOne.length); System.arraycopy(arrTwo, 0, arrThree, arrOne.length, arrTwo.length);
- 哦,谢谢。不知道。示例如下-tutorialspoint.com/java/lang/system_arraycopy.htm-以防TS希望看到它。但是,对于TS来说,还不清楚。
你可以使用
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 ); |
- 可能要提到ArrayUtils的来源。
- 哦,对了--commons.apache.org/proper/commons lang/javadocs/api-2.6/org/&zwnj;&8203;&hellip;。只有当你有共同点的时候才有效。
创建对象[]数组,然后对foo1[]执行第一个循环以手动添加到对象[],然后对foo2[]重复此操作。
野蛮人,但简单高效