I det här programmet lär du dig att sammanfoga två matriser i Kotlin med hjälp av arraycopy och utan den.
Exempel 1: Sammankoppla två matriser med hjälp 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 kör programmet blir resultatet:
(1, 2, 3, 4, 5, 6)
I ovanstående program har vi två heltalmatriser array1 och array2.
För att kombinera (sammanfoga) två matriser hittar vi dess längd lagrad i aLen respektive bLen. Sedan skapar vi ett nytt heltal array-resultat med längden aLen + bLen.
Nu, för att kombinera till båda, kopierar vi varje element i båda matriserna för att resultera med hjälp av arraycopy () -funktionen.
Den arraycopy(array1, 0, result, 0, aLen)
funktion, enkelt uttryckt, berättar programmet för att kopiera matris1 start från index 0
bero på index 0
till Alen.
På samma sätt arraycopy(array2, 0, result, aLen, bLen)
berättar för programmet att kopiera array2 från index 0
till result
från index aLen till bLen.
Exempel 2: Sammankoppla två matriser utan att använda arraykopia
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 kör programmet blir resultatet:
(1, 2, 3, 4, 5, 6)
I det ovanstående programmet, istället för att använda arraycopy
, kopierar vi manuellt varje element i båda matriserna array1 och array2 till resultat.
Vi lagrar den totala längden som krävs för resultat, det vill säga array1.length + array2. length
. Sedan skapar vi ett nytt arrayresultat av längden.
Nu använder vi för varje slinga för att slinga igenom varje element i array1 och lagra det i resultatet. Efter att tilldela det, vi ökar positions pos med 1, pos++
.
På samma sätt gör vi detsamma för array2 och lagrar varje element i resultatet från position efter array1.
Här är motsvarande Java-kod: Java-program för att sammanfoga två matriser.