Kotlinov program za spajanje dva polja

U ovom programu naučit ćete spajati dva niza u Kotlinu pomoću arraycopy i bez nje.

Primjer 1: Spojite dva polja pomoću 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)) )

Kada pokrenete program, izlaz će biti:

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

U gornjem programu imamo dva cjelovita niza array1 i array2.

Kako bismo kombinirali (spojili) dva niza, nalazimo njegovu duljinu pohranjenu u aLen, odnosno bLen. Zatim kreiramo novi rezultat cijelog polja s duljinom aLen + bLen.

Sada, da bismo kombinirali oboje, kopiramo svaki element u oba polja da bismo dobili rezultat pomoću funkcije arraycopy ().

arraycopy(array1, 0, result, 0, aLen)Funkcija, pojednostavljeno rečeno, kaže program za kopiranje polje1 počevši od indeksa 0rezultat od indeksa 0do Alen.

Isto tako, for arraycopy(array2, 0, result, aLen, bLen)govori programu da kopira niz 2 počevši od indeksa 0do resultindeksa aLen u bLen.

Primjer 2: Spojite dva niza bez upotrebe arraycopy

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

Kada pokrenete program, izlaz će biti:

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

U gornjem programu, umjesto da koristimo arraycopy, ručno kopiramo svaki element oba polja array1 i array2 da bismo dobili rezultat.

Pohranjujemo ukupnu duljinu potrebnu za rezultat, tj array1.length + array2. length. Zatim kreiramo novi rezultat polja s duljinom.

Sada koristimo for-svaka petlja da petljamo kroz svaki element niza1 i pohranimo ga u rezultat. Nakon što je ustupanje, možemo poboljšati položaj poz za 1, pos++.

Isto tako, činimo isto za array2 i pohranjujemo svaki element u rezultat počevši od položaja nakon array1.

Evo ekvivalentnog Java koda: Java program za spajanje dva polja.

Zanimljivi članci...