Java Program to Concatenate Two Arrays

To understand this example, you should have the knowledge of the following Java programming topics:


Example 1: Concatenate Two Arrays using arraycopy

import java.util.Arrays;

public class Concat {

    public static void main(String[] args) {
        int[] array1 = {1, 2, 3};
        int[] array2 = {4, 5, 6};

        int aLen = array1.length;
        int bLen = array2.length;
        int[] result = new int[aLen + bLen];

        System.arraycopy(array1, 0, result, 0, aLen);
        System.arraycopy(array2, 0, result, aLen, bLen);

        System.out.println(Arrays.toString(result));
    }
}

Output

[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 both, we copy each element 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;

public class Concat {

    public static void main(String[] args) {
        int[] array1 = {1, 2, 3};
        int[] array2 = {4, 5, 6};

        int length = array1.length + array2.length;

        int[] result = new int[length];
        int pos = 0;
        for (int element : array1) {
            result[pos] = element;
            pos++;
        }

        for (int element : array2) {
            result[pos] = element;
            pos++;
        }

        System.out.println(Arrays.toString(result));
    }
}

Output

[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 the for-each loop to iterate 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.

Did you find this article helpful?