Java program za spajanje dva polja

U ovom programu naučit ćete spajati dva polja u Javi pomoću arraycopy i bez nje.

Da biste razumjeli ovaj primjer, trebali biste imati znanje o sljedećim temama programiranja Java:

  • Java nizovi
  • Java za svaku petlju

Primjer 1: Spojite dva polja pomoću 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)); ) )

Izlaz

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

U gornjem programu imamo dva cjelovita niza array1 i array2.

Kako bismo kombinirali (spojili) dva niza, nalazimo njegovu duljinu pohranjenu u aLen, odnosno bLen. Zatim kreiramo novi rezultat cijelog polja s duljinom aLen + bLen.

Sada, da bismo kombinirali oboje, kopiramo svaki element u oba polja da bismo dobili rezultat pomoću arraycopy()funkcije.

arraycopy(array1, 0, result, 0, aLen)Funkcija, pojednostavljeno rečeno, kaže program za kopiranje polje1 počevši od indeksa 0rezultat od indeksa 0do Alen.

Isto tako, for arraycopy(array2, 0, result, aLen, bLen)govori programu da kopira niz 2 počevši od indeksa 0do resultindeksa aLen u bLen.

Primjer 2: Spojite dva niza bez upotrebe 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)); ) )

Izlaz

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

U gornjem programu, umjesto da koristimo arraycopy, ručno kopiramo svaki element oba polja array1 i array2 da bismo dobili rezultat.

Pohranjujemo ukupnu duljinu potrebnu za rezultat, tj array1.length + array2. length. Zatim kreiramo novi rezultat polja s duljinom.

Sada koristimo petlju for-each za iteraciju kroz svaki element polja1 i pohranjujemo ga u rezultat. Nakon što je ustupanje, možemo poboljšati položaj poz za 1, pos++.

Isto tako, činimo isto za array2 i pohranjujemo svaki element u rezultat počevši od položaja nakon array1.

Zanimljivi članci...