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 0
at resultere fra indeks 0
til Alen.
Ligeledes for arraycopy(array2, 0, result, aLen, bLen)
fortæller programmet at kopiere array2 startende fra indeks 0
til result
fra 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 arraycopy
kopierer 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.