Tässä ohjelmassa opit yhdistämään kaksi matriisia Kotlinissa käyttämällä matriisikopiota ja ilman sitä.
Esimerkki 1: Yhdistä kaksi ryhmää matriisikopiolla
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)) )
Kun suoritat ohjelmaa, tulos on:
(1, 2, 3, 4, 5, 6)
Yllä olevassa ohjelmassa meillä on kaksi kokonaislukua taulukkoa taulukko1 ja taulukko2.
Kahden matriisin yhdistämiseksi löydämme sen pituuden tallennettuna aLen: ään ja bLen: ään. Sitten luomme uuden kokonaislukutuloksen, jonka pituus on aLen + bLen.
Yhdistämiseksi molempiin kopioimme jokaisen elementin molemmista matriisista tulokseksi käyttämällä arraycopy () -funktiota.
arraycopy(array1, 0, result, 0, aLen)
Toiminto yksinkertaisesti, kertoo ohjelman kopioida matriisi1 alkaen indeksin 0
johtuvan indeksiin 0
Alen.
Samalla tavoin arraycopy(array2, 0, result, aLen, bLen)
kertoo ohjelman kopioida matriisi2 alkaen indeksi 0
ja result
indeksistä Alén ja Blen.
Esimerkki 2: ketjuta kaksi ryhmää käyttämättä matriisikopiota
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)) )
Kun suoritat ohjelmaa, tulos on:
(1, 2, 3, 4, 5, 6)
Yllä olevassa ohjelmassa kopioimme sen sijaan arraycopy
, että käytämme molempien matriisien matriisi1 ja taulukko2 elementit manuaalisesti tulokseen.
Tallennamme tulokseen tarvittavan kokonaispituuden, ts array1.length + array2. length
. Sitten luomme uuden matriisituloksen.
Nyt käytämme for-each -silmukkaa silmukkaamme taulukon1 jokaisen elementin läpi ja tallennamme sen tulokseen. Jälkeen osoittaa se, lisäämme pos 1, pos++
.
Samoin teemme saman matriisille2 ja tallennamme jokaisen elementin tulokseen alkaen taulukon 1 jälkeisestä sijainnista.
Tässä on vastaava Java-koodi: Java-ohjelma kahden matriisin yhdistämiseksi.