Kotlin Program to Concatenate Two Arrays

In this program, you'll learn to concatenate two arrays in Kotlin using arraycopy and without it.

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.