Program Kotlin na zreťazenie dvoch polí

V tomto programe sa naučíte zreťaziť dve polia v Kotline pomocou arraycopy a bez nej.

Príklad 1: Zreťazenie dvoch polí pomocou 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)) )

Po spustení programu bude výstup:

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

Vo vyššie uvedenom programe máme dve celočíselné polia array1 a array2.

Aby sme spojili (zreťazili) dve polia, nájdeme jej dĺžku uloženú v aLen respektíve bLen. Potom vytvoríme nový výsledok celočíselného poľa s dĺžkou aLen + bLen.

Teraz, aby sme ich mohli skombinovať do oboch, skopírujeme všetky prvky do oboch polí a získame výsledok pomocou funkcie arraycopy ().

arraycopy(array1, 0, result, 0, aLen)Funkcie, zjednodušene povedané, hovorí program skopírovať array1 počnúc indexom 0za následok z indexu 0na Alén.

Rovnako tak for arraycopy(array2, 0, result, aLen, bLen)povie programu, aby skopíroval pole2 začínajúce z indexu 0do resultz indexu aLen do bLen.

Príklad 2: Zreťazte dve polia bez použitia 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)) )

Po spustení programu bude výstup:

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

Vo vyššie uvedenom programe namiesto použitia arraycopyručne skopírujeme každý prvok obidvoch polí array1 a array2, aby sme dosiahli výsledok.

Uložíme celkovú dĺžku potrebnú na výsledok, tj array1.length + array2. length. Potom vytvoríme nový výsledok dĺžky poľa.

Teraz použijeme slučku for-each na smyčku cez každý prvok poľa1 a uložíme ju do výsledku. Po priradení sme zvýšiť pos pozície 1, pos++.

Rovnako urobíme to isté pre pole2 a každý prvok uložíme do výsledku počnúc pozíciou po poli1.

Tu je ekvivalentný kód Java: Program Java na zreťazenie dvoch polí.

Zaujímavé články...