În acest program, veți învăța să concatenați două matrici în Kotlin folosind matricea și fără aceasta.
Exemplul 1: concatenează două matrice utilizând aropia
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)) )
Când rulați programul, ieșirea va fi:
(1, 2, 3, 4, 5, 6)
În programul de mai sus, avem două tablouri întregi array1 și array2.
Pentru a combina (concatena) două matrice, găsim lungimea acesteia stocată în aLen și respectiv bLen. Apoi, creăm un nou rezultat de matrice întregi cu lungimea aLen + bLen.
Acum, pentru a combina la ambele, copiem fiecare element în ambele matrici pentru a rezulta folosind funcția arraycopy ().
arraycopy(array1, 0, result, 0, aLen)
Funcția, în termeni simpli, spune programul pentru a copia matrice1 pornind de la indexul 0
pentru a rezulta din indexul 0
la ALEN.
La fel, for arraycopy(array2, 0, result, aLen, bLen)
spune programului să copieze array2 începând de la index 0
la de result
la index aLen la bLen.
Exemplul 2: Concatenează două matrice fără a utiliza aropia
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)) )
Când rulați programul, ieșirea va fi:
(1, 2, 3, 4, 5, 6)
În programul de mai sus, în loc să îl folosim arraycopy
, copiem manual fiecare element din ambele matrice array1 și array2 pentru a rezulta.
Stocăm lungimea totală necesară pentru rezultat, adică array1.length + array2. length
. Apoi, creăm un nou rezultat al matricei de lungime.
Acum, folosim pentru fiecare buclă pentru a parcurge fiecare element al matricei 1 și a-l stoca în rezultat. După atribuire, mărim poziția poz cu 1 pos++
,.
La fel, facem același lucru pentru array2 și stocăm fiecare element în rezultat pornind de la poziția după array1.
Iată codul Java echivalent: program Java pentru concatenarea a două matrice.