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

Ebben a programban megtanulja összekapcsolni két tömböt a Java-ban tömbmásolattal és anélkül.

A példa megértéséhez ismernie kell a következő Java programozási témákat:

  • Java tömbök
  • Java minden hurokhoz

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

 import java.util.Arrays; public class Concat ( public static void main(String() args) ( int() array1 = (1, 2, 3); int() array2 = (4, 5, 6); int aLen = array1.length; int bLen = array2.length; int() result = new int(aLen + bLen); System.arraycopy(array1, 0, result, 0, aLen); System.arraycopy(array2, 0, result, aLen, bLen); System.out.println(Arrays.toString(result)); ) )

Kimenet

 (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őt egyesítsük, a arraycopy()függvény használatával mindkét elemet átmásoljuk mindkét tömbbe .

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; public class Concat ( public static void main(String() args) ( int() array1 = (1, 2, 3); int() array2 = (4, 5, 6); int length = array1.length + array2.length; int() result = new int(length); int pos = 0; for (int element : array1) ( result(pos) = element; pos++; ) for (int element : array2) ( result(pos) = element; pos++; ) System.out.println(Arrays.toString(result)); ) )

Kimenet

 (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-each ciklust használjuk az 1. tömb minden elemének végigvezetéséhez és az eredményben való tárolásához. 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.

érdekes cikkek...