Kotlin程序合并两个数组

Kotlin 实例大全

在这个程序中,您将学习使用arraycopy和不使用arraycopy连接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中。然后,我们创建一个长度为aLen + bLen 的新整数数组 result。

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

arraycopy(array1, 0, result, 0, aLen)函数,简单来说,程序将array1从索引0复制到result从索引0复制到aLen。

同样,对于arraycopy(array2,0,result,aLen,bLen)告诉程序将array2从索引0复制到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。然后,我们创建一个新的长度数组 result。

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

同样地,我们对array2执行同样的操作,并从array1之后的位置开始存储result中的每个元素。

这是等效的Java代码:连接两个数组的Java程序

Kotlin 实例大全