Program Java pro zřetězení dvou polí

V tomto programu se naučíte zřetězit dvě pole v Javě pomocí arraycopy a bez ní.

Abychom porozuměli tomuto příkladu, měli byste znát následující programovací témata Java:

  • Java pole
  • Java pro každou smyčku

Příklad 1: Zřetězit dvě pole pomocí arraycopy

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

Výstup

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

Ve výše uvedeném programu máme dvě celočíselná pole array1 a array2.

Abychom mohli kombinovat (zřetězit) dvě pole, zjistíme jeho délku uloženou v aLen, respektive bLen. Poté vytvoříme nový výsledek celočíselného pole s délkou aLen + bLen.

Nyní, abychom kombinovali oba, zkopírujeme každý prvek do obou polí, abychom získali výsledek pomocí arraycopy()funkce.

arraycopy(array1, 0, result, 0, aLen)Funkce, zjednodušeně řečeno, říká program zkopírovat array1 počínaje indexem 0za následek z indexu 0na Alén.

Podobně for arraycopy(array2, 0, result, aLen, bLen)říká programu, aby kopíroval pole2 počínaje od indexu 0po resultod indexu aLen do bLen.

Příklad 2: Zřetězit dvě pole bez použití arraycopy

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

Výstup

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

Ve výše uvedeném programu namísto použití arraycopyručně zkopírujeme každý prvek obou polí array1 a array2 do výsledku.

Uložíme celkovou délku požadovanou pro výsledek, tj array1.length + array2. length. Poté vytvoříme nový výsledek pole délky.

Nyní používáme smyčku for-each k iteraci každým prvkem pole1 a uložení do výsledku. Po přiřazení jsme zvýšit pos pozice 1, pos++.

Stejně tak uděláme totéž pro pole2 a každý prvek uložíme do výsledku počínaje pozicí po poli1.

Zajímavé články...