Kotlin程序合并兩個(gè)數(shù)組

Kotlin 實(shí)例大全

在這個(gè)程序中,您將學(xué)習(xí)使用arraycopy和不使用arraycopy連接Kotlin中的兩個(gè)數(shù)組。

示例1:使用arraycopy連接兩個(gè)數(shù)組

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))
}

運(yùn)行該程序時(shí),輸出為:

[1, 2, 3, 4, 5, 6]

在上面的程序中,我們有兩個(gè)整數(shù)數(shù)組array1和array2。

為了合并(連接)兩個(gè)數(shù)組,我們找到其長度分別存儲在aLen和bLen中。然后,我們創(chuàng)建一個(gè)長度為aLen + bLen 的新整數(shù)數(shù)組 result。

現(xiàn)在,為了將兩者結(jié)合在一起,我們使用arraycopy()函數(shù)將兩個(gè)數(shù)組中的每個(gè)元素都復(fù)制為 result。

arraycopy(array1, 0, result, 0, aLen)函數(shù),簡單來說,程序?qū)rray1從索引0復(fù)制到result從索引0復(fù)制到aLen。

同樣,對于arraycopy(array2,0,result,aLen,bLen)告訴程序?qū)rray2從索引0復(fù)制到result從索引aLen復(fù)制到bLen。

示例2:在不使用arraycopy的情況下串聯(lián)兩個(gè)數(shù)組

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))
}

運(yùn)行該程序時(shí),輸出為:

[1, 2, 3, 4, 5, 6]

在上面的程序中,我們沒有使用arraycopy,而是手動復(fù)制數(shù)組array1和array2的每個(gè)元素到result。

我們存儲 result 所需的總長度,即 array1.length + array2. length。然后,我們創(chuàng)建一個(gè)新的長度數(shù)組 result。

現(xiàn)在,我們使用for-each循環(huán)來遍歷array1的每個(gè)元素并將其存儲在結(jié)果中。賦值后,我們增加位置pos 1, pos++。

同樣地,我們對array2執(zhí)行同樣的操作,并從array1之后的位置開始存儲result中的每個(gè)元素。

這是等效的Java代碼:連接兩個(gè)數(shù)組的Java程序。

Kotlin 實(shí)例大全

丰满人妻一级特黄a大片,午夜无码免费福利一级,欧美亚洲精品在线,国产婷婷成人久久Av免费高清