Program Java pentru concatenarea a două matrice

În acest program, veți învăța să concatenați două tablouri în Java folosind arraycopy și fără aceasta.

Pentru a înțelege acest exemplu, ar trebui să aveți cunoștințele despre următoarele subiecte de programare Java:

  • Matrice Java
  • Java pentru fiecare buclă

Exemplul 1: concatenează două matrice utilizând aropia

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

Ieșire

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

În programul de mai sus, avem două tablouri întregi array1 și array2.

Pentru a combina (concatena) două matrice, găsim lungimea acesteia stocată în aLen și respectiv bLen. Apoi, creăm un nou rezultat de matrice întregi cu lungimea aLen + bLen.

Acum, pentru a combina ambele, copiem fiecare element în ambele tablouri pentru a rezulta folosind arraycopy()funcția.

arraycopy(array1, 0, result, 0, aLen)Funcția, în termeni simpli, spune programul pentru a copia matrice1 pornind de la indexul 0pentru a rezulta din indexul 0la ALEN.

La fel, for arraycopy(array2, 0, result, aLen, bLen)spune programului să copieze array2 începând de la index 0la de resultla index aLen la bLen.

Exemplul 2: Concatenează două matrice fără a utiliza aropia

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

Ieșire

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

În programul de mai sus, în loc să îl folosim arraycopy, copiem manual fiecare element din ambele matrice array1 și array2 pentru a rezulta.

Stocăm lungimea totală necesară pentru rezultat, adică array1.length + array2. length. Apoi, creăm un nou rezultat al matricei de lungime.

Acum, folosim bucla pentru fiecare pentru a itera prin fiecare element al matricei 1 și a o stoca în rezultat. După atribuire, mărim poziția poz cu 1 pos++,.

La fel, facem același lucru pentru array2 și stocăm fiecare element în rezultat pornind de la poziția după array1.

Articole interesante...