У овом програму ћете научити да спајате два низа у Котлину користећи арраицопи и без ње.
Пример 1: Спојите два низа помоћу арраицопи
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)) )
Када покренете програм, излаз ће бити:
(1, 2, 3, 4, 5, 6)
У горњем програму имамо два целобројна низа низ1 и низ2.
Да бисмо комбиновали (спојили) два низа, пронађемо његову дужину ускладиштену у аЛен и бЛен. Затим креирамо нови резултат целобројног низа дужине аЛен + бЛен.
Сада, да бисмо комбиновали оба, копирамо сваки елемент у оба низа да бисмо добили резултат помоћу функције арраицопи ().
arraycopy(array1, 0, result, 0, aLen)
Функција, једноставно речено, говори програм за копирање низ1 почевши од индекса 0
на резултат индекса 0
Алену.
Слично томе, фор arraycopy(array2, 0, result, aLen, bLen)
каже програму да копира низ2 почевши од индекса 0
до result
индекса аЛен до бЛен.
Пример 2: Спојите два низа без употребе арраицопи
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)) )
Када покренете програм, излаз ће бити:
(1, 2, 3, 4, 5, 6)
У горњем програму, уместо да користимо arraycopy
, ручно копирамо сваки елемент оба низа арраи1 и арраи2 да бисмо добили резултат.
Чувамо укупну дужину потребну за резултат, тј array1.length + array2. length
. Затим креирамо нови резултат низа дужине.
Сада користимо петљу фор-еацх да провучемо кроз сваки елемент низа1 и похранимо га у резултат. Након додељивања смо повећати позицију поз за 1, pos++
.
Исто тако, радимо исто за низ2 и чувамо сваки елемент у резултату почев од положаја након низа1.
Ево еквивалентног Јава кода: Јава програм за спајање два низа.