连接两个数组的 Java 程序

在本程序中,您将学习使用和不使用 arraycopy 在 Java 中连接两个数组。

要理解此示例,您应该具备以下 Java 编程的知识:

示例 1:使用 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));
    }
}

输出

[1, 2, 3, 4, 5, 6]

在上面的程序中,我们有两个整数数组 array1array2

为了组合(连接)两个数组,我们将他们的长度分别存储在 aLenbLen。然后,我们创建一个新的整数数组 result,长度为 aLen + bLen.

现在,为了将两者结合起来,我们使用 arraycopy() 函数将两个数组中的每个元素复制到结果。

简单来说,这个函数 arraycopy(array1, 0, result, 0, aLen) 告诉程序将 array1 中从索引 0 开始的 aLen 个元素复制到 result 中从 0 开始的位置。

同样, arraycopy(array2, 0, result, aLen, bLen) 告诉程序将 array2 中从索引 0 开始的 bLen 个元素复制到 result 中从 aLen 开始的位置。

示例 2:不使用 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));
    }
}

输出

[1, 2, 3, 4, 5, 6]

在上面的程序中,我们没有使用 arraycopy,而是手动复制两个数组 array1array2 中的每个元素到 result.

我们创建一个新的长度数组 result,它的总长度为 array1.length + array2.length

现在,我们使用 for-each 循环遍历 array1 的每个元素并将其存储在 result. 赋值后,我们通过 pos++ 让索引加 1.

同样,我们将 array2 的每个元素存储在 result