Kotlin program két tömb összefűzésére

Ebben a programban megtanulsz két tömböt összefűzni Kotlinban arraycopy segítségével és anélkül.

1. példa: Két tömb összefűzése tömbminta segítségével

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

A program futtatásakor a kimenet a következő lesz:

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

A fenti programban két egész tömböt találunk: array1 és array2.

Két tömb egyesítéséhez (összefűzéséhez) megtaláljuk a hosszát az aLen és a bLen tárolva. Ezután létrehozunk egy új egész tömb eredményt aLen + bLen hosszúsággal.

Most, hogy mindkettőhöz kombinálódhassunk, az arraycopy () függvény használatával mindkét elemet átmásoljuk mindkét tömb mindegyik elemébe.

A arraycopy(array1, 0, result, 0, aLen)függvény egyszerű kifejezéssel megmondja a programnak, hogy másolja az 1. tömböt indexről 0az eredményre indexről 0az aLen-re.

Hasonlóképpen, az arraycopy(array2, 0, result, aLen, bLen)azt mondja, hogy a program másolja tomb2 kezdve index 0az resultindexből Alen a Blen.

2. példa: Két tömb összefűzése tömbkóp használata nélkül

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

A program futtatásakor a kimenet a következő lesz:

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

A fenti programban, ahelyett, hogy használnánk arraycopy, manuálisan átmásoljuk mindkét tömb1 és tömb2 tömb mindegyik elemét az eredményre.

Tároljuk az eredményhez szükséges teljes hosszat, azaz array1.length + array2. length. Ezután létrehozunk egy új tömb eredményt a hosszúságról.

Most a for-hurok segítségével végigvezetjük a tömb1 egyes elemeit, és tároljuk az eredményben. Kiosztása után, mi növeli a pozíció pos 1, pos++.

Hasonlóképpen, ugyanezt tesszük a 2. tömb esetében is, és minden elemet elmentünk az eredménybe a tömb1 utáni pozíciótól kezdve.

Itt található az egyenértékű Java kód: Java program két tömb összefűzésére.

érdekes cikkek...