Kotlin-programma om twee arrays samen te voegen

In dit programma leer je twee arrays in Kotlin samen te voegen met en zonder arraycopy.

Voorbeeld 1: voeg twee arrays samen met behulp van 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)) )

Wanneer u het programma uitvoert, is de uitvoer:

 (1, 2, 3, 4, 5, 6)

In het bovenstaande programma hebben we twee integer-arrays array1 en array2.

Om twee arrays te combineren (aaneenschakelen), vinden we de lengte ervan opgeslagen in respectievelijk aLen en bLen. Vervolgens maken we een nieuw integerarray-resultaat met lengte aLen + bLen.

Om nu met beide te combineren, kopiëren we elk element in beide arrays om te resulteren door de functie arraycopy () te gebruiken.

De arraycopy(array1, 0, result, 0, aLen)functie, in eenvoudige bewoordingen, vertelt het programma om array1 te kopiëren vanaf index 0naar resultaat van index 0naar aLen.

Evenzo arraycopy(array2, 0, result, aLen, bLen)vertelt for het programma om array2 te kopiëren vanaf index 0naar resultvan index aLen naar bLen.

Voorbeeld 2: twee arrays samenvoegen zonder arraycopy te gebruiken

 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)) )

Wanneer u het programma uitvoert, is de uitvoer:

 (1, 2, 3, 4, 5, 6)

In het bovenstaande programma, in plaats van te gebruiken arraycopy, kopiëren we handmatig elk element van zowel arrays array1 als array2 naar het resultaat.

We slaan de totale lengte op die nodig is voor resultaat, dwz array1.length + array2. length. Vervolgens maken we een nieuw array-resultaat van de lengte.

Nu gebruiken we for-each-lus om door elk element van array1 te lopen en het op te slaan in het resultaat. Na het toewijzen, verhogen we de positie pos met 1, pos++.

Evenzo doen we hetzelfde voor array2 en slaan we elk element op in het resultaat vanaf de positie na array1.

Hier is de equivalente Java-code: Java-programma om twee arrays samen te voegen.

Interessante artikelen...