Selles programmis saate teada, kuidas ühendada Java kaks massiivi arraycopy abil ja ilma selleta.
Selle näite mõistmiseks peaksid teil olema teadmised järgmistest Java programmeerimise teemadest:
- Java massiivid
- Java igale aasale
Näide 1: Liitke kaks massiivi massiivkoopia abil
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äljund
(1, 2, 3, 4, 5, 6)
Ülaltoodud programmis on meil kaks täisarvu massiivi massiiv1 ja massiiv2.
Kahe massiivi ühendamiseks (liitmiseks) leiame selle pikkuse vastavalt aLen ja bLen. Seejärel loome uue täisarvu massiivi tulemuse pikkusega aLen + bLen.
Mõlema ühendamiseks kopeerime nüüd mõlemad elemendid mõlemasse massiivi, et tulemuseks oleks arraycopy()
funktsioon.
arraycopy(array1, 0, result, 0, aLen)
Funktsiooni, lihtsate sõnadega, räägib programmi kopeerida massiiv1 alates indeks 0
tulenevat indeks 0
, et Alen.
Samamoodi arraycopy(array2, 0, result, aLen, bLen)
ütleb programmi kopeerida massiiv2 alates indeks 0
on result
alates indeks Alen et blen.
Näide 2: Liitke kaks massiivi ilma massiivkoopiat kasutamata
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äljund
(1, 2, 3, 4, 5, 6)
Ülaltoodud programmis arraycopy
kopeerime tulemuse saamiseks mõlema massiivi massiivi1 ja massiivi2 iga elemendi selle asemel, et seda kasutada .
Me salvestame tulemuseks vajaliku kogupikkuse, st array1.length + array2. length
. Seejärel loome pikkuse uue massiivi tulemuse.
Nüüd kasutame massi1 iga elemendi iteratsiooniks ja iga tulemuse jaoks salvestamiseks iga silmuse jaoks. Pärast määrates, siis me suurendada positsiooni pos 1, pos++
.
Samamoodi teeme sama ka massiivi 2 puhul ja salvestame iga elemendi tulemust alates massiivi 1 järgsest positsioonist.