Šioje programoje išmoksite susieti du „Java“ masyvus naudodami masyvo kopiją ir be jos.
Norėdami suprasti šį pavyzdį, turite žinoti šias Java programavimo temas:
- „Java“ masyvai
- „Java“ kiekvienai kilpai
1 pavyzdys: sujungkite du masyvus naudodami masyvo kopiją
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)); ) )
Rezultatas
(1, 2, 3, 4, 5, 6)
Pirmiau pateiktoje programoje mes turime du sveikųjų skaičių masyvus masyvas1 ir masyvas2.
Norėdami sujungti (susieti) dvi masyvas, mes nustatome, kad jo ilgis yra saugomas atitinkamai aLen ir bLen. Tada sukursime naują sveiko skaičiaus masyvo rezultatą, kurio ilgis aLen + bLen.
Dabar, norėdami sujungti abu, mes nukopijuojame kiekvieną elementą abiejuose masyvuose, kad gautume naudodami arraycopy()
funkciją.
arraycopy(array1, 0, result, 0, aLen)
Funkcija, paprastais žodžiais, pasakoja, kad programa kopijuoti 1 masyvas nuo indeksas 0
sukelti iš rodyklės 0
į Alen.
Taip pat for arraycopy(array2, 0, result, aLen, bLen)
nurodo programai nukopijuoti masyvą2 nuo indekso 0
iki result
indekso aLen į bLen.
2 pavyzdys: sujungti du masyvus nenaudojant masyvo
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)); ) )
Rezultatas
(1, 2, 3, 4, 5, 6)
Pirmiau minėtoje programoje, užuot naudoję arraycopy
, mes rankiniu būdu nukopijuojame abu masyvų masyvo1 ir masyvo2 elementus.
Mes saugome visą rezultatui reikalingą ilgį, t array1.length + array2. length
. Tada sukuriame naują masyvo ilgio rezultatą.
Dabar mes naudojame kiekvienai kilpai kartoti kiekvieną masyvo1 elementą ir laikyti jį rezultate. Priskyrę, mes padidiname poziciją pos 1 pos++
,.
Taip pat mes darome tą patį masyvą2 ir kiekvieną elementą kaupiame rezultate pradedant nuo pozicijos po masyvu1.