跳到主要内容

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() 函数将两个数组中的每个元素复制到 result 中。

arraycopy(array1, 0, result, 0, aLen) 函数简单来说,告诉程序从 array1 的索引 0 开始复制到 result 的索引 0aLen

同样地,arraycopy(array2, 0, result, aLen, bLen) 告诉程序从 array2 的索引 0 开始复制到 result 的索引 aLenbLen

示例 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 所需的总 length,即 array1.length + array2.length。然后,我们创建了长度为 length 的新数组 result

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

同样,我们对 array2 做同样的操作,将其每个元素从 array1 后的位置开始存储到 result 中。