Java programm kahe massiivi ühendamiseks

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 0tulenevat indeks 0, et Alen.

Samamoodi arraycopy(array2, 0, result, aLen, bLen)ütleb programmi kopeerida massiiv2 alates indeks 0on resultalates 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 arraycopykopeerime 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.

Huvitavad Artiklid...