У цій програмі ви навчитеся об'єднувати два масиви в Котліні за допомогою масиву копій та без нього.
Приклад 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)
У наведеній вище програмі ми маємо два цілочисельних масиви array1 та array2.
Для того, щоб поєднати (об'єднати) два масиви, ми знаходимо його довжину, збережену в aLen та bLen відповідно. Потім ми створюємо новий результат цілочисельного масиву з довжиною aLen + bLen.
Тепер, щоб поєднати обидва, ми копіюємо кожен елемент в обох масивах, щоб отримати результат за допомогою функції arraycopy ().
arraycopy(array1, 0, result, 0, aLen)
Функція, в простих умовах, повідомляє програма для копіювання array1 починаючи з індексу 0
в результаті індекс 0
до Alen.
Аналогічним чином, for arraycopy(array2, 0, result, aLen, bLen)
повідомляє програмі копіювати масив2, починаючи з індексу 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
. Потім ми створюємо новий результат масиву довжини.
Тепер ми використовуємо цикл for-each, щоб прокрутити кожен елемент масиву1 та зберегти його в результаті. Після призначення його, ми збільшуємо пози позиції 1, pos++
.
Так само ми робимо те саме для масиву2 і зберігаємо кожен елемент у результаті, починаючи з позиції після масиву1.
Ось еквівалентний код Java: програма Java для об’єднання двох масивів.