2013-04-30 50 views
1

我该如何去添加两个数组?Java - 将两个数组组合在一起

例如,如果: 阵列1 = [11,33,4] 阵列2 = [1,5,4]

然后将得到的阵列应该是C = [11,33,4,1 ,5,4]。 任何帮助将被赞赏

+3

你有没有试过。如果是,那么请告诉我们,让我们知道你到底遇到了什么问题。 – Smit 2013-04-30 00:32:30

+0

这个问题应该作为一个骗局被锁定。见http://stackoverflow.com/questions/80476/how-to-concatenate-two-arrays-in-java – 2013-04-30 00:59:10

回答

5

创建第三个阵列,复制两个数组中它:

int[] result = new int[a.length + b.length]; 
System.arraycopy(a, 0, result, 0, a.length); 
System.arraycopy(b, 0, result, a.length, b.length); 
+0

感谢您的回答:) – Steven84 2013-04-30 11:15:07

2

你可以在Apache Commons Lang中做到这一点。它有一个名为addAll的方法。以下是其描述:

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

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

这里是你如何使用它:

combinedArray = ArrayUtils.addAll(array1, array2); 
+0

这似乎是一个非常小的功能的外部库的不必要的介绍,不是吗? – raptortech97 2013-04-30 00:40:00

+1

@ raptortech97:不要重新发明轮子。我不在乎车轮是多么简单/似乎。我写了一行长的方法,但仍然存在一个错误。 'ArrayUtils.addAll'比一个手写的'System.arraycopy'测试得更好,它可以完成同样的事情。 – 2013-04-30 01:19:40

0

声明c阵列等于两个数组的长度之和的长度。然后使用System.arraycopy将原始数组的内容复制到新数组中,小心地将它们复制到正确的起始索引处的目标数组中。

+0

这很有效,但我更喜欢我的答案,因为对于Commons Lang,您不必“小心”。 api不会让你犯这个错误。 – 2013-04-30 00:34:30