V tem programu se boste naučili povezati dva polja v Kotlinu z uporabo arraycopy in brez nje.
Primer 1: Združite dva niza z uporabo arraycopy
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)) )
Ko zaženete program, bo rezultat:
(1, 2, 3, 4, 5, 6)
V zgornjem programu imamo dve celoštevilski matriki array1 in array2.
Da bi združili (združili) dva polja, najdemo njegovo dolžino, shranjeno v aLen oziroma bLen. Nato ustvarimo nov rezultat celoštevilskega polja z dolžino aLen + bLen.
Zdaj, da združimo oba, kopiramo vsake elemente v obeh nizih, da dobimo rezultat s pomočjo funkcije arraycopy ().
arraycopy(array1, 0, result, 0, aLen)
Funkcija, na preprost način, pravi program za kopiranje array1 začenši z indeksom 0
za posledico iz indeksa 0
Alen.
Prav tako for arraycopy(array2, 0, result, aLen, bLen)
pove programu, da kopira matriko2, začenši z indeksa 0
na result
indeks aLen v bLen.
Primer 2: Združite dva polja brez uporabe arraycopy
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)) )
Ko zaženete program, bo rezultat:
(1, 2, 3, 4, 5, 6)
V zgornjem programu namesto uporabe arraycopy
ročno kopiramo vsak element obeh nizov array1 in array2, da dobimo rezultat.
Shranimo skupno dolžino, potrebno za rezultat, tj array1.length + array2. length
. Nato ustvarimo nov rezultat matrike dolžine.
Zdaj za-vsako zanko uporabljamo za zanko skozi vsak element array1 in ga shranimo v rezultat. Potem ko je dodeljevanje smo povečali pos položaja z 1, pos++
.
Podobno naredimo enako za matriko2 in shranimo vsak element v rezultat, začenši s položaja za matriko1.
Tu je enakovredna koda Java: program Java za združevanje dveh nizov.