Java - Copierea matricelor

Cuprins
Odată ce ați însușit conceptele de matrice și cum să-l completăm și cum să trecem printr-unul, cu siguranță va trebui să generăm copii de matrice, deoarece de multe ori va trebui să procesăm conținutul matricei menționate fără a modifica un original pe care îl vom folosi în alte scopuri.
Deși copierea poate suna ca o activitate foarte simplă, este într-adevăr un pic mai complexă decât atribuirea valoarea matricei către o altă variabilă declarată de acest tip.
Copierea matricelor
Ca parte a logicii programelor noastre, probabil că vom avea nevoie la un moment dat copiați o matrice într-o altă variabilăPentru a putea lucra cu elementele dintr-o altă instanță a programului, așa cum am menționat la început, atribuirea variabilei care conține matricea altei nu este soluția potrivită.
Să presupunem că facem sarcina după cum urmează:
varArrar2 = varArray1;

În acest caz nu există nicio eroare sintactică, deci instrucțiunea funcționează fără probleme, chiar dacă încercăm să facem o buclă varArray2 vom obține valorile pe care știm că le avem varArray1, te întrebi unde este problema atunci, problema este că în această instrucțiune ce ai făcut Java a fost să copiați referința la conținutul primei matrice, deci dacă facem o modificare în oricare dintre cele două, ambii vor vedea schimbarea.
După cum putem vedea, aceasta nu este o metodă foarte eficientă decât dacă dorim să copiem referința în mod eficient.
Mod corect de a copia o matriceExistă mai multe moduri de a efectua copie a unei matrice, folosind o buclă care trece prin prima matrice și atribuind valorile celei de-a doua, folosind metoda aradicării statice ceea ce este cuprins în clasă Sistem și în cele din urmă folosind metoda clonăriiCu toate acestea, acesta din urmă este puțin mai avansat decât ceea ce vedem aici.
Folosirea unei bucle
Aceasta este cea mai simplă metodă dintre toate, deși este un pic laborioasă, îndeplinește corect obiectivul și ne permite să obținem o nouă matrice care ar fi copia originalului și total independentă de acesta, pentru a face această copie la care urmează faceți următoarele:
 int [] varArray1 = {2, 3, 1, 5, 10}; int [] varArray2 = new int [varArray1.length]; for (int i = 0; i <varArray1.length; i ++) {varArray2 [i] = varArray1 [i]; } 

După cum vedem, este ceva foarte simplu, avem al nostru prima matrice cu un număr de valori deja atribuite în conținutul său, creăm un a doua matrice și indicăm că dimensiunea sa va fi lungimea matricei originale și în cele din urmă cu a pentru bucla atribuim noii noastre matrice valoarea care corespunde poziției ciclului primei matrice.
Folosind metoda aracopiei
Un mod mai simplu care folosește puțin mai puțin cod este metoda statică aracopie, această metodă încalcă convenția de numire a Java cu toate acestea funcționează corect, pentru a-l utiliza trebuie să facem următoarele:
System.arraycopy (varArray1, varArray1_pos, varArray2, varArray2_pos, lungime);

După cum putem vedea într-o singură linie, rezolvăm problema, metoda primește în primul său argument matricea pe care urmează să o copiem, apoi primește poziția inițială de unde vom copia, apoi matricea de destinație a copiei , poziția sa inițială și în cele din urmă lungimea copiei:

În cele din urmă, am văzut că copierea unui tablou, deși nu este la fel de simplă ca o atribuire de variabile, este o sarcină relativ ușoară folosind metodele descrise în acest tutorial.V-a plăcut și ați ajutat acest tutorial?Puteți recompensa autorul apăsând acest buton pentru a-i oferi un punct pozitiv

Vei ajuta la dezvoltarea site-ului, partajarea pagina cu prietenii

wave wave wave wave wave