2013-04-30 59 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