Java - Copia di array

Sommario
Una volta che hai imparato i concetti di Vettore e come riempirlo e come attraversarne uno, dovremo sicuramente anche generare copie di array, poiché molte volte avremo bisogno di elaborare il contenuto di detto array senza alterare un originale che utilizzeremo per altri scopi.
Anche se copiare può sembrare un'attività molto semplice, in realtà è un po' più complessa dell'assegnazione del valore dell'array a un'altra variabile dichiarata di questo tipo.
Copia di array
Come parte della logica dei nostri programmi, probabilmente a un certo punto avremo bisogno copia un array in una variabile diversaPer poter lavorare con gli elementi in un'altra istanza del programma, come accennato all'inizio, assegnare ad un'altra la variabile che contiene l'array non è la soluzione appropriata.
Supponiamo di eseguire il compito come segue:
varArray2 = varArray1;

In questo caso non c'è nessun errore di sintassi quindi l'istruzione funziona senza problemi, anche se proviamo a fare un loop varArray2 otterremo i valori che sappiamo di avere in varArray1, ti chiedi dove sia il problema allora, il problema è che in questa istruzione cosa hai fatto Giava era quello di copiare il riferimento al contenuto del primo array, quindi se facciamo una modifica in uno dei due, entrambi vedranno la modifica.
Come possiamo vedere, questo non è un metodo molto efficace a meno che non si voglia copiare il riferimento in modo efficace.
Modo corretto per copiare un arrayEsistono diversi modi per eseguire il copia di un array, utilizzando un ciclo che passa per il primo array e assegnando i valori al secondo, utilizzando il metodo arraycopy statico cosa è contenuto nella classe Sistema e infine utilizzando il metodo cloneTuttavia, quest'ultimo è un po' più avanzato di quello che stiamo vedendo qui.
Utilizzo di un ciclo
Questo è il metodo più semplice di tutti, anche se è un po' laborioso, soddisfa correttamente l'obiettivo e ci consente di ottenere un nuovo array che sarebbe la copia dell'originale e totalmente indipendente da esso, per fare questa copia che andremo a fare quanto segue:
 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]; } 

Come vediamo è qualcosa di molto semplice, abbiamo il nostro primo array con un numero di valori già assegnati nel suo contenuto, creiamo un secondo array e indichiamo che la sua dimensione sarà la lunghezza dell'array originale e infine con a per ciclo stiamo assegnando al nostro nuovo array il valore che corrisponde alla posizione del ciclo del primo array.
Utilizzando il metodo arraycopy
Un modo più semplice che utilizza un po' meno codice è il metodo statico arraycopy, questo metodo rompe la convenzione di denominazione di Giava comunque funziona correttamente, per usarlo dobbiamo fare quanto segue:
System.arraycopy (varArray1, varArray1_pos, varArray2, varArray2_pos, length);

Come possiamo vedere in una sola riga risolviamo il problema, il metodo riceve nel suo primo argomento l'array che andremo a copiare, poi riceve la posizione iniziale da dove andremo a copiare, poi l'array di destinazione della copia , la sua posizione iniziale e infine la lunghezza della copia:

Infine, abbiamo visto che la copia di un array, sebbene non sia semplice come l'assegnazione di variabili, è un'attività relativamente semplice utilizzando i metodi descritti in questo tutorial.Ti è piaciuto e hai aiutato questo Tutorial?Puoi premiare l'autore premendo questo pulsante per dargli un punto positivo

Aiuterete lo sviluppo del sito, condividere la pagina con i tuoi amici

wave wave wave wave wave