Java - Kopiranje niza

Sadržaj
Nakon što ste savladali pojmove nizu i kako ga ispuniti i kako ga proći, također ćemo zasigurno morati generirati kopije niza, budući da ćemo mnogo puta morati obraditi sadržaj navedenog niza bez mijenjanja izvornika koji ćemo koristiti u druge svrhe.
Iako kopiranje može zvučati kao vrlo jednostavna aktivnost, ono je doista malo složenije od dodjeljivanja vrijednost niza na drugu deklariranu varijablu ovog tipa.
Kopiranje niza
Kao dio logike naših programa, vjerojatno ćemo u nekom trenutku trebati kopirajte niz u drugu varijabluKako biste mogli raditi s elementima u drugoj instanci programa, kao što smo spomenuli na početku, dodjeljivanje varijable koja sadrži niz drugoj nije odgovarajuće rješenje.
Pretpostavimo da zadatak radimo na sljedeći način:
varArrar2 = varArray1;

U ovom slučaju nema sintaksičke pogreške pa instrukcija radi bez problema, čak i ako pokušamo petlju varArray2 dobit ćemo vrijednosti za koje znamo da ih imamo varArray1, pitate se gdje je onda problem, problem je što ste u ovoj uputi ono što ste učinili Java bio kopirati referencu na sadržaj prvog niza, pa ako napravimo promjenu u bilo kojem od dva, oboje će vidjeti promjenu.
Kao što vidimo, ovo nije vrlo učinkovita metoda osim ako ne želimo učinkovito kopirati referencu.
Ispravan način kopiranja nizaPostoji nekoliko načina izvođenja kopija niza, koristeći petlju koja prolazi kroz prvi niz i dodjeljuje vrijednosti drugom, koristeći metoda statičke matrice ono što je sadržano u razredu Sustav i na kraju koristeći metoda kloniranjaMeđutim, ovo drugo je malo naprednije od onog što ovdje vidimo.
Korištenje petlje
Ovo je najjednostavniji način od svih, iako je pomalo naporan, ispravno ispunjava cilj i omogućuje nam da dobijemo novi niz koji bi bio kopija izvornika i potpuno neovisan o njemu, kako bismo napravili ovu kopiju na koju idemo učinite sljedeće:
 int [] varArray1 = {2, 3, 1, 5, 10}; int [] varArray2 = novi int [varArray1.length]; for (int i = 0; i <varArray1.length; i ++) {varArray2 [i] = varArray1 [i]; } 

Kako vidimo da je to nešto vrlo jednostavno, mi imamo svoje prvi niz s već dodijeljenim vrijednostima u svom sadržaju, stvaramo drugi niz i označavamo da će njegova dimenzija biti duljina izvornog niza i na kraju s a za petlju našem novom nizu dodjeljujemo vrijednost koja odgovara položaju ciklusa prvog niza.
Pomoću metode arraycopy
Jednostavniji način koji koristi malo manje koda je statička metoda matrična kopija, ova metoda krši konvenciju imenovanja od Java međutim radi ispravno, da bismo ga koristili moramo učiniti sljedeće:
System.arraycopy (varArray1, varArray1_pos, varArray2, varArray2_pos, dužina);

Kao što možemo vidjeti u jednom retku kako rješavamo problem, metoda u svom prvom argumentu prima niz koji ćemo kopirati, zatim prima početnu poziciju s mjesta na koje ćemo kopirati, zatim odredišni niz kopije , početni položaj i na kraju duljinu kopije:

Konačno, vidjeli smo da je kopiranje niza, iako nije tako jednostavno kao dodjeljivanje varijabli, relativno lak zadatak pomoću metoda opisanih u ovom vodiču.Je li vam se svidio i pomogao ovaj vodič?Autor možete nagraditi pritiskom na ovaj gumb kako biste mu dali pozitivan bod
wave wave wave wave wave