企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
# Java 程序:连接两个数组 > 原文: [https://www.programiz.com/java-programming/examples/concatenate-two-arrays](https://www.programiz.com/java-programming/examples/concatenate-two-arrays) #### 在此程序中,您将学习使用`arraycopy`在没有 Java 的情况下连接两个数组。 ## 示例 1:使用`arraycopy`连接两个数组 ```java 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)); } } ``` 运行该程序时,输出为: ```java [1, 2, 3, 4, 5, 6] ``` 在上面的程序中,我们有两个整数数组`array1`和`array2`。 为了合并(连接)两个数组,我们发现其长度分别存储在`aLen`和`bLen`中。 然后,我们创建一个长度为`aLen + bLen`的新整数数组结果。 现在,为了将两者结合起来,我们使用`arraycopy()`函数将两个数组中的每个元素都复制为结果。 简单来说,`arraycopy(array1, 0, result, 0, aLen)`函数告诉程序将`array1`从索引`0`开始复制到`result`从索引`0`复制到`aLen`。 同样,对于`arraycopy(array2, 0, result, aLen, bLen)`告诉程序从索引`0`开始将`array2`从索引`aLen`复制到`bLen`。 * * * ## 示例 2:在不使用`arraycopy`的情况下连接两个数组 ```java 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)); } } ``` 运行该程序时,输出为: ```java [1, 2, 3, 4, 5, 6] ``` 在上述程序中,我们不使用`arraycopy`,而是将两个数组`array1`和`array2`的每个元素手动复制到`result`。 我们存储`result`所需的`length`,即`array1.length + array2.length`。 然后,我们创建一个新的长度数组结果。 现在,我们使用`for-each`循环遍历`array1`的每个元素,并将其存储在`result`中。 分配后,我们将位置`pos`增加 1`pos++`。 同样,我们对`array2`执行相同的操作,并将每个元素从`array1`之后的位置存储在`result`中。