Java - Kopieringsarrays

Indholdsfortegnelse
Når du har mestret begreberne array og hvordan man udfylder det, og hvordan man går igennem et, skal vi også sikkert generere kopier af arrays, da vi mange gange bliver nødt til at behandle indholdet af nævnte array uden at ændre en original, som vi vil bruge til andre formål.
Selvom kopiering kan lyde som en meget enkel aktivitet, er det virkelig lidt mere komplekst end at tildele array værdi til en anden erklæret variabel af denne type.
Kopiering af arrays
Som en del af logikken i vores programmer, får vi sandsynligvis på et tidspunkt brug for det kopier et array til en anden variabelFor at kunne arbejde med elementerne i en anden instans af programmet, som vi nævnte i begyndelsen, er tildeling af variablen, der indeholder arrayet, til en anden ikke den passende løsning.
Antag, at vi udfører opgaven som følger:
varArrar2 = varArray1;

I dette tilfælde er der ingen syntaktisk fejl, så instruktionen fungerer uden problemer, selvom vi prøver at sløjfe varArray2 vi vil opnå de værdier, som vi ved, vi har i varArray1, du spekulerer på, hvor problemet er så, problemet er, at i denne instruktion, hvad du gjorde Java var at kopiere referencen til indholdet i det første array, så hvis vi foretager en ændring i en af ​​de to, vil de begge se ændringen.
Som vi kan se, er dette ikke en særlig effektiv metode, medmindre vi ønsker at kopiere referencen effektivt.
Den korrekte måde at kopiere et arrayDer er flere måder at udføre kopi af en matrix, ved hjælp af en loop, der går gennem det første array og tildeler værdierne til det andet, ved hjælp af statisk arraycopy -metode hvad der er indeholdt i klassen System og endelig bruge klon metodeSidstnævnte er dog lidt mere avanceret end det, vi ser her.
Brug af en sløjfe
Dette er den enkleste metode af alle, selvom det er lidt besværligt, det opfylder målet korrekt og giver os mulighed for at få et nyt array, der ville være kopien af ​​originalen og helt uafhængigt af det, for at lave denne kopi, vi skal til gør følgende:
 int [] varArray1 = {2, 3, 1, 5, 10}; int [] varArray2 = ny int [varArray1.length]; for (int i = 0; i <varArray1.length; i ++) {varArray2 [i] = varArray1 [i]; } 

Som vi ser, det er noget meget enkelt, har vi vores første array med et antal værdier, der allerede er tildelt i dets indhold, opretter vi en andet array og vi angiver, at dens dimension vil være længden af ​​det originale array og til sidst med et til sløjfe vi tildeler vores nye array den værdi, der svarer til positionen for cyklussen for det første array.
Brug af arraycopy -metoden
En enklere måde, der bruger lidt mindre kode, er den statiske metode arraykopi, denne metode bryder navngivningskonventionen af Java men det fungerer korrekt, for at bruge det skal vi gøre følgende:
System.arraycopy (varArray1, varArray1_pos, varArray2, varArray2_pos, længde);

Som vi kan se på en enkelt linje, løser vi problemet, metoden modtager i sit første argument den matrix, som vi skal kopiere, derefter modtager den den oprindelige position, hvorfra vi skal kopiere, derefter destinationsmatrixen for kopien , dens oprindelige position og endelig kopilængden:

Endelig så vi, at kopiering af et array, selvom det ikke er så simpelt som en tildeling af variabler, er en relativt let opgave ved hjælp af metoderne beskrevet i denne vejledning.Kan du lide og hjælpe denne vejledning?Du kan belønne forfatteren ved at trykke på denne knap for at give ham et positivt punkt
wave wave wave wave wave