企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
# Kotlin 程序:连接两个数组 > 原文: [https://www.programiz.com/kotlin-programming/examples/concatenate-two-arrays](https://www.programiz.com/kotlin-programming/examples/concatenate-two-arrays) #### 在此程序中,您将学习使用`arraycopy`在没有数组的情况下在 Kotlin 中连接两个数组。 ## 示例 1:使用`arraycopy`连接两个数组 ```kt import java.util.Arrays fun main(args: Array<String>) { val array1 = intArrayOf(1, 2, 3) val array2 = intArrayOf(4, 5, 6) val aLen = array1.size val bLen = array2.size val result = IntArray(aLen + bLen) System.arraycopy(array1, 0, result, 0, aLen) System.arraycopy(array2, 0, result, aLen, bLen) println(Arrays.toString(result)) } ``` 运行该程序时,输出为: ```kt [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`的情况下连接两个数组 ```kt import java.util.Arrays fun main(args: Array<String>) { val array1 = intArrayOf(1, 2, 3) val array2 = intArrayOf(4, 5, 6) val length = array1.size + array2.size val result = IntArray(length) var pos = 0 for (element in array1) { result[pos] = element pos++ } for (element in array2) { result[pos] = element pos++ } println(Arrays.toString(result)) } ``` 运行该程序时,输出为: ```kt [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`中。 以下是等效的 Java 代码:[用于连接两个数组的 Java 程序](/java-programming/examples/concatenate-two-arrays "Java program to concatenate two arrays")。