📜  Java程序来连接两个数组

📅  最后修改于: 2020-09-26 18:03:24             🧑  作者: Mango

在此程序中,您将学习使用arraycopy在没有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中 。然后,我们创建一个长度为aLen + bLen的新整数数组结果。

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

所述arraycopy(array1, 0, result, 0, aLen) 函数,简单来说,告诉程序复制ARRAY1从索引开始0 导致从索引0阿伦

同样地,对于arraycopy(array2, 0, result, aLen, bLen)告诉程序复制数组2从索引开始0result从索引阿伦BLEN。


示例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

我们存储结果所需的总长度 ,即array1.length + array2. length 。然后,我们创建一个新的长度数组结果。

现在,我们使用for-each循环遍历array1的每个元素,并将其存储在result中 。分配后,我们将位置pos增加1, pos++

同样,我们对array2进行相同操作,并将每个元素存储在从array1之后的位置开始的结果中