Java - Arrays kopiëren

Inhoudsopgave
Als je eenmaal de concepten van reeks en hoe we het moeten vullen en hoe we er doorheen moeten gaan, we zullen zeker ook moeten genereren kopieën van arrays, omdat we vaak de inhoud van de array moeten verwerken zonder een origineel te wijzigen dat we voor andere doeleinden zullen gebruiken.
Hoewel kopiëren misschien een heel eenvoudige activiteit lijkt, is het echt een beetje ingewikkelder dan het toewijzen van de matrixwaarde naar een andere gedeclareerde variabele van dit type.
Arrays kopiëren
Als onderdeel van de logica van onze programma's, zullen we waarschijnlijk op een gegeven moment nodig hebben kopieer een array naar een andere variabeleOm met de elementen in een andere instantie van het programma te kunnen werken, zoals we in het begin al zeiden, is het niet de juiste oplossing om de variabele die de array bevat aan een andere toe te wijzen.
Stel we doen de opdracht als volgt:
varArrar2 = varArray1;

In dit geval is er geen syntactische fout, dus de instructie werkt zonder problemen, zelfs als we proberen een lus te maken varArray2 we zullen de waarden verkrijgen waarvan we weten dat we ze hebben varArray1, je vraagt ​​je af waar het probleem dan is, het probleem is dat in deze instructie wat je hebt gedaan Java was om de verwijzing naar de inhoud van de eerste array te kopiëren, dus als we een wijziging aanbrengen in een van de twee, zullen ze beide de wijziging zien.
Zoals we kunnen zien, is dit geen erg effectieve methode, tenzij we de referentie effectief willen kopiëren.
Correcte manier om een ​​array te kopiërenEr zijn verschillende manieren om de kopie van een array, met behulp van een lus die door de eerste array gaat en de waarden toewijst aan de tweede, met behulp van de statische arraycopy-methode: wat zit er in de klas Systeem en tenslotte met behulp van de kloon methodeDit laatste is echter iets geavanceerder dan wat we hier zien.
Een lus gebruiken
Dit is de eenvoudigste methode van allemaal, hoewel het een beetje omslachtig is, voldoet het correct aan het doel en stelt het ons in staat een nieuwe array te verkrijgen die de kopie van het origineel zou zijn en er volledig onafhankelijk van zou zijn, om deze kopie te maken die we gaan maken doe het volgende:
 int [] varArray1 = {2, 3, 1, 5, 10}; int [] varArray2 = nieuw int [varArray1.length]; for (int i = 0; i <varArray1.length; i ++) {varArray2 [i] = varArray1 [i]; } 

Zoals we zien is het iets heel eenvoudigs, we hebben onze eerste reeks met een aantal waarden die al zijn toegewezen in de inhoud, creëren we een tweede array en we geven aan dat de afmeting de lengte van de originele array zal zijn en tenslotte met a for loop we wijzen aan onze nieuwe array de waarde toe die overeenkomt met de positie van de cyclus van de eerste array.
De arraycopy-methode gebruiken
Een eenvoudigere manier die iets minder code gebruikt, is de statische methode arraycopy, deze methode breekt de naamgevingsconventie van Java het werkt echter correct, om het te gebruiken moeten we het volgende doen:
System.arraycopy (varArray1, varArray1_pos, varArray2, varArray2_pos, lengte);

Zoals we in een enkele regel kunnen zien, lossen we het probleem op, de methode ontvangt in zijn eerste argument de array die we gaan kopiëren, vervolgens ontvangt deze de beginpositie van waar we gaan kopiëren, en vervolgens de bestemmingsarray van de kopie , de beginpositie en ten slotte de kopielengte:

Ten slotte zagen we dat het kopiëren van een array, hoewel het niet zo eenvoudig is als het toewijzen van variabelen, een relatief gemakkelijke taak is met behulp van de methoden die in deze tutorial worden beschreven.Vond je deze Tutorial leuk en heb je eraan geholpen?Je kunt de auteur belonen door op deze knop te drukken om hem een ​​positief punt te geven
wave wave wave wave wave