Java-program til sammenkædning af to arrays

I dette program lærer du at sammenkæde to arrays i Java ved hjælp af arraycopy og uden det.

For at forstå dette eksempel skal du have kendskab til følgende Java-programmeringsemner:

  • Java Arrays
  • Java for hver løkke

Eksempel 1: Sammenkæd to arrays ved hjælp af 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)); ) )

Produktion

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

I ovenstående program har vi to heltal arrays array1 og array2.

For at kombinere (sammenkæde) to arrays finder vi dens længde gemt i henholdsvis aLen og bLen. Derefter opretter vi et nyt heltal array-resultat med længde aLen + bLen.

For at kombinere begge dele kopierer vi hvert element i begge arrays for at få resultatet ved hjælp af arraycopy()funktionen.

Den arraycopy(array1, 0, result, 0, aLen)funktion, i enkle vendinger, fortæller programmet til at kopiere matrix1 startende fra indeks 0at resultere fra indeks 0til Alen.

Ligeledes for arraycopy(array2, 0, result, aLen, bLen)fortæller programmet at kopiere array2 startende fra indeks 0til resultfra indeks aLen til bLen.

Eksempel 2: Sammenkæd to arrays uden at bruge 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)); ) )

Produktion

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

I ovenstående program arraycopykopierer vi manuelt hvert element i begge arrays array1 og array2 i stedet for at bruge det til resultat.

Vi gemmer den samlede længde kræves til resultat, dvs. array1.length + array2. length. Derefter opretter vi et nyt array-resultat af længden.

Nu bruger vi for-hver løkke til at gentage gennem hvert element i array1 og gemme det i resultatet. Efter at tildele den, vi øge position POS med 1, pos++.

På samme måde gør vi det samme for array2 og gemmer hvert element i resultatet startende fra positionen efter array1.

Interessante artikler...