Kotlin 程序:连接两个数组
示例1:使用arraycopy合并两个数组
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))
}
当运行程序时,输出结果将为:
[1, 2, 3, 4, 5, 6]
在上面的程序中,我们有两个整数数组 array1
和 array2
。
为了合并(连接)这两个数组,我们分别找到它们的 长度,分别存储在 aLen
和 bLen
中。然后,我们创建一个新的整数数组 result
,其长度为 aLen + bLen
。
现在,为了合并它们,我们使用 arraycopy()
函数将两个数组中的每个元素复制到 result
中。
arraycopy(array1, 0, result, 0, aLen)
函数简单来说告诉程序从索引 0
开始复制 array1
到 result
,从索引 0
到 aLen
。
同样,对于 arraycopy(array2, 0, result, aLen, bLen)
,它告诉程序从索引 0
开始复制 array2
到 result
,从索引 aLen
到 bLen
。
示例2:不使用arraycopy合并两个数组
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))
}
当运行程序时,输出结果将为:
[1, 2, 3, 4, 5, 6]
在上面的程序中,我们没有使用 arraycopy
,而是手动将 array1
和 array2
的每个元素复制到 result
中。
我们存储了 result
所需的总长度,即 array1.length + array2. length
。然后,我们创建一个新的长度为 length
的数组 result
。
现在,我们使用 for-each 循环来循环遍历 array1
的每个元素,并将其存储在 result
中。在赋值后,我们将位置 pos
增加 1,pos++
。
同样,我们对 array2
做同样的操作,并将每个元素存储在 result
中,从 array1
之后的位置开始。
以下是等效的Java代码:Java程序:合并两个数组。