Selles programmis saate õppida Kotlinis liitma kahte massiivi, kasutades massiivkoopiat ja ilma selleta.
Näide 1: Liitke kaks massiivi massiivkoopia abil
import java.util.Arrays fun main(args: Array) ( 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)) )
Programmi käivitamisel on väljund järgmine:
(1, 2, 3, 4, 5, 6)
Ülaltoodud programmis on meil kaks täisarvu massiivi massiiv1 ja massiiv2.
Kahe massiivi ühendamiseks (liitmiseks) leiame selle pikkuse vastavalt aLen ja bLen. Seejärel loome uue täisarvu massiivi tulemuse pikkusega aLen + bLen.
Mõlemaks ühendamiseks kopeerime nüüd mõlemad elemendid mõlemasse massiivi, et tulemuseks oleks arraycopy () funktsioon.
arraycopy(array1, 0, result, 0, aLen)
Funktsiooni, lihtsate sõnadega, räägib programmi kopeerida massiiv1 alates indeks 0
tulenevat indeks 0
, et Alen.
Samamoodi arraycopy(array2, 0, result, aLen, bLen)
ütleb programmi kopeerida massiiv2 alates indeks 0
on result
alates indeks Alen et blen.
Näide 2: Liitke kaks massiivi ilma massiivkoopiat kasutamata
import java.util.Arrays fun main(args: Array) ( 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)) )
Programmi käivitamisel on väljund järgmine:
(1, 2, 3, 4, 5, 6)
Ülaltoodud programmis arraycopy
kopeerime tulemuse saamiseks mõlema massiivi massiivi1 ja massiivi2 iga elemendi selle asemel, et seda kasutada .
Me salvestame tulemuseks vajaliku kogupikkuse, st array1.length + array2. length
. Seejärel loome pikkuse uue massiivi tulemuse.
Nüüd kasutame massi1 iga elemendi läbimiseks ja tulemuse salvestamiseks for-iga silmust. Pärast määrates, siis me suurendada positsiooni pos 1, pos++
.
Samamoodi teeme sama ka massiivi 2 puhul ja salvestame iga elemendi tulemust alates massiivi 1 järgsest positsioonist.
Siin on samaväärne Java kood: Java-programm kahe massiivi ühendamiseks.