Програма Kotlin за свързване на два масива

В тази програма ще се научите да свързвате два масива в Kotlin с помощта на arraycopy и без него.

Пример 1: Конкатенация на два масива с помощта на 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)) )

Когато стартирате програмата, изходът ще бъде:

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

В горната програма имаме два целочислени масива array1 и array2.

За да комбинираме (обединим) два масива, намираме дължината му, съхранявана съответно в aLen и bLen. След това създаваме нов резултат от цял ​​масив с дължина aLen + bLen.

Сега, за да комбинираме и двете, копираме всеки елемент в двата масива, за да получим резултат, като използваме функцията arraycopy ().

Най- arraycopy(array1, 0, result, 0, aLen)функцията, с прости думи, казва програмата за копиране масив 1 като се започва от индекс 0резултат от индекса 0на Ален.

По същия начин for arraycopy(array2, 0, result, aLen, bLen)казва на програмата да копира array2, започвайки от индекс 0към resultиндекс aLen в bLen.

Пример 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, ние ръчно копираме всеки елемент от двата масива array1 и array2 за резултат.

Съхраняваме общата дължина, необходима за резултат, т.е. array1.length + array2. length. След това създаваме нов резултат от масив с дължината.

Сега използваме за всеки цикъл, за да обиколим всеки елемент от array1 и го съхраняваме в резултата. След като го присвоим, увеличаваме позицията pos с 1 pos++,.

По същия начин правим същото за array2 и съхраняваме всеки елемент в резултат, започвайки от позицията след array1.

Ето еквивалентния Java код: Java програма за обединяване на два масива.

Интересни статии...