Example 1: Concatenate Two Arrays using arraycopy
import java.util.Arrays
fun main(args: Array<String>) {
val array1 = intArrayOf(1, 2, 3)
val array2 = intArrayOf(4, 5, 6)
val aLen = array1.size
val bLen = array2.size
val result = IntArray(aLen + bLen)
System.arraycopy(array1, 0, result, 0, aLen)
System.arraycopy(array2, 0, result, aLen, bLen)
println(Arrays.toString(result))
}
When you run the program, the output will be:
[1, 2, 3, 4, 5, 6]
In the above program, we've two integer arrays array1 and array2.
In order to combine (concatenate) two arrays, we find its length stored in aLen and bLen respectively. Then, we create a new integer array result with length aLen + bLen.
Now, in order to combine to both, we copy each elements in both arrays to result by using arraycopy() function.
The arraycopy(array1, 0, result, 0, aLen)
function, in simple terms, tells the program to copy array1 starting from index 0
to result from index 0
to aLen.
Likewise, for arraycopy(array2, 0, result, aLen, bLen)
tells the program to copy array2 starting from index 0
to result
from index aLen to bLen.
Example 2: Concatenate Two Arrays without using arraycopy
import java.util.Arrays
fun main(args: Array<String>) {
val array1 = intArrayOf(1, 2, 3)
val array2 = intArrayOf(4, 5, 6)
val length = array1.size + array2.size
val result = IntArray(length)
var pos = 0
for (element in array1) {
result[pos] = element
pos++
}
for (element in array2) {
result[pos] = element
pos++
}
println(Arrays.toString(result))
}
When you run the program, the output will be:
[1, 2, 3, 4, 5, 6]
In the above program, instead of using arraycopy
, we manually copy each element of both arrays array1 and array2 to result.
We store the total length required for result, i.e. array1.length + array2. length
. Then, we create a new array result of the length.
Now, we use for-each loop to loop through each element of array1 and store it in the result. After assigning it, we increase the position pos by 1, pos++
.
Likewise, we do the same for array2 and store each element in result starting from the position after array1.
Here's the equivalent Java code: Java program to concatenate two arrays.