I dette programmet lærer du å sammenkoble to matriser i Kotlin ved hjelp av arraykopi og uten den.
Eksempel 1: Sammenkoble to matriser ved hjelp av 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)) )
Når du kjører programmet, vil utdataene være:
(1, 2, 3, 4, 5, 6)
I programmet ovenfor har vi to heltall arrays array1 og array2.
For å kombinere (sammenkoble) to matriser, finner vi lengden lagret i henholdsvis aLen og bLen. Deretter oppretter vi et nytt heltall array-resultat med lengde aLen + bLen.
Nå, for å kombinere til begge deler, kopierer vi hvert element i begge matriser for å få resultatet ved hjelp av arraycopy () -funksjonen.
Den arraycopy(array1, 0, result, 0, aLen)
funksjonen på en enkel måte, forteller programmet til å kopiere matrise1 fra indeksen 0
til å resultere fra indeks 0
til Ålen.
På samme måte arraycopy(array2, 0, result, aLen, bLen)
forteller for programmet å kopiere array2 fra indeks 0
til result
indeks aLen til bLen.
Eksempel 2: Sammenkoble to matriser uten å bruke arraykopi
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)) )
Når du kjører programmet, vil utdataene være:
(1, 2, 3, 4, 5, 6)
I det ovennevnte programmet, i stedet for å bruke arraycopy
, kopierer vi manuelt hvert element i begge matriser array1 og array2 til resultat.
Vi lagrer den totale lengden nødvendig for resultatet, altså array1.length + array2. length
. Deretter lager vi et nytt array-resultat av lengden.
Nå bruker vi for hver sløyfe til å gå gjennom hvert element i array1 og lagre det i resultatet. Etter tildeling av det, øker vi posisjons pos med 1, pos++
.
På samme måte gjør vi det samme for array2 og lagrer hvert element i resultatet fra posisjon etter array1.
Her er ekvivalent Java-kode: Java-program for å sammenkoble to matriser.