„Java“ - masyvų kopijavimas

Turinys
Kai įvaldysite sąvokas masyvas ir kaip jį užpildyti ir kaip jį pereiti, mums taip pat tikrai reikės sukurti masyvų kopijos, nes daug kartų turėsime apdoroti minėto masyvo turinį nekeisdami originalo, kurį naudosime kitiems tikslams.
Nors kopijavimas gali atrodyti labai paprasta veikla, jis tikrai yra šiek tiek sudėtingesnis nei priskyrimas masyvo vertė į kitą tokio tipo deklaruojamą kintamąjį.
Masyvų kopijavimas
Kaip mūsų programų logikos dalis, mums tikriausiai tam tikru momentu prireiks kopijuoti masyvą į kitą kintamąjįKad galėtume dirbti su elementais kitame programos egzemplioriuje, kaip minėjome pradžioje, kintamojo, kuriame yra masyvas, priskyrimas kitam nėra tinkamas sprendimas.
Tarkime, užduotį atliekame taip:
varArrar2 = varArray1;

Šiuo atveju nėra sintaksės klaidos, todėl instrukcija veikia be problemų, net jei bandome pakartoti varArray2 mes įgysime vertybes, kurias žinome turį varArray1, jums įdomu, kur tada yra problema, problema ta, kad šioje instrukcijoje tai, ką padarėte „Java“ buvo nukopijuoti nuorodą į pirmojo masyvo turinį, taigi, jei pakeisime bet kurį iš dviejų, jie abu matys pakeitimą.
Kaip matome, tai nėra labai efektyvus metodas, nebent norime efektyviai nukopijuoti nuorodą.
Teisingas būdas kopijuoti masyvąYra keletas būdų, kaip atlikti masyvo kopija, naudojant kilpą, einančią per pirmąjį masyvą, ir priskiriant reikšmes antrajam, naudojant statinės masyvinės kopijos metodas kas yra klasėje Sistema ir galiausiai naudojant klonų metodasTačiau pastarasis yra šiek tiek pažangesnis nei tai, ką matome čia.
Naudojant kilpą
Tai yra paprasčiausias metodas, nors ir šiek tiek varginantis, tačiau jis teisingai įgyvendina tikslą ir leidžia mums gauti naują masyvą, kuris būtų originalo kopija ir visiškai nepriklausomas nuo jo, kad padarytume šią kopiją. darykite taip:
 int [] varArray1 = {2, 3, 1, 5, 10}; int [] varArray2 = naujas int [varArray1.length]; for (int i = 0; i <varArray1.length; i ++) {varArray2 [i] = varArray1 [i]; } 

Kaip matome, tai kažkas labai paprasto, mes turime savo pirmasis masyvas turinyje jau priskirtas reikšmes, sukuriame a antrasis masyvas ir mes nurodome, kad jo matmuo bus pradinio masyvo ilgis ir galiausiai su a už kilpą naujam masyvui priskiriame vertę, atitinkančią pirmojo masyvo ciklo padėtį.
Naudojant masyvinės kopijos metodą
Paprastesnis būdas, kuris naudoja šiek tiek mažiau kodo, yra statinis metodas masyvinė kopija, šis metodas pažeidžia pavadinimo konvenciją „Java“ nors jis veikia teisingai, norėdami jį naudoti, turime atlikti šiuos veiksmus:
System.arraycopy (varArray1, varArray1_pos, varArray2, varArray2_pos, ilgis);

Kaip matome vienoje eilutėje, išsprendžiame problemą, metodas pirmuoju argumentu gauna masyvą, kurį ketiname kopijuoti, tada jis gauna pradinę poziciją, iš kurios ketiname kopijuoti, tada kopijos paskirties masyvą , jo pradinė padėtis ir galiausiai kopijos ilgis:

Galiausiai pamatėme, kad masyvo kopijavimas, nors tai nėra taip paprasta, kaip kintamųjų priskyrimas, yra gana lengva užduotis naudojant šiame vadove aprašytus metodus.Ar jums patiko ir padėjo ši pamoka?Galite apdovanoti autorių paspausdami šį mygtuką, kad suteiktumėte jam teigiamą tašką
wave wave wave wave wave