Program Java na zreťazenie dvoch polí

V tomto programe sa naučíte spájať dve polia v Jave pomocou arraycopy a bez nej.

Aby ste pochopili tento príklad, mali by ste mať znalosti nasledujúcich tém programovania v jazyku Java:

  • Java polia
  • Java pre každú slučku

Príklad 1: Zreťazenie dvoch polí pomocou 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ýkon

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

Vo vyššie uvedenom programe máme dve celočíselné polia array1 a array2.

Aby sme spojili (zreťazili) dve polia, nájdeme jej dĺžku uloženú v aLen respektíve bLen. Potom vytvoríme nový výsledok celočíselného poľa s dĺžkou aLen + bLen.

Teraz, aby sme obe skombinovali, skopírujeme každý prvok do oboch polí, aby sme dosiahli výsledok pomocou arraycopy()funkcie.

arraycopy(array1, 0, result, 0, aLen)Funkcie, zjednodušene povedané, hovorí program skopírovať array1 počnúc indexom 0za následok z indexu 0na Alén.

Rovnako tak for arraycopy(array2, 0, result, aLen, bLen)povie programu, aby skopíroval pole2 začínajúce z indexu 0do resultz indexu aLen do bLen.

Príklad 2: Zreťazte dve polia bez použitia 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ýkon

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

Vo vyššie uvedenom programe namiesto použitia arraycopyručne skopírujeme každý prvok obidvoch polí array1 a array2, aby sme dosiahli výsledok.

Uložíme celkovú dĺžku potrebnú na výsledok, tj array1.length + array2. length. Potom vytvoríme nový výsledok dĺžky poľa.

Teraz používame slučku for-each na iteráciu cez každý prvok poľa1 a uloženie do výsledku. Po priradení sme zvýšiť pos pozície 1, pos++.

Rovnako urobíme to isté pre pole2 a každý prvok uložíme do výsledku počnúc pozíciou po poli1.

Zaujímavé články...