Come copiare l'array in java

Come copiare l'array in java
Se un array viene copiato su un altro, il risultato dovrebbe essere che ci sono due array indipendenti con due nomi diversi ma con gli stessi valori corrispondenti. Una modifica del valore di un elemento array non dovrebbe comportare alcuna modifica dell'elemento corrispondente dell'altro array.

Quando un array viene veramente copiato su un altro, se la lunghezza del nuovo array è più corta della lunghezza dell'array originale, il nuovo array è una copia ma troncata alla lunghezza copiata. Se il nuovo array è più lungo, gli elementi extra verso la sua estremità sono riempiti con i valori predefiniti del tipo di dati. Affinché un array sia copiato su un altro, entrambi gli array devono essere dello stesso tipo o tipi compatibili.

Java ha un metodo per copiare un array su un altro. Questo metodo è il metodo CopyOf () ed è sovraccarico per i diversi tipi di dati. È un metodo statico della classe di array. "Statico" significa che un array non deve essere istanziato per il metodo da utilizzare. Utilizza il nome di classe, array, con il primo "a" in maiuscolo. Il metodo restituisce l'array copiato. Questo articolo spiega le diverse forme sovraccarichi del metodo CopyOf (). Include come copiare i tipi di riferimento. Come copiare un intervallo di array non viene escluso.

Copia di una serie di valori booleani

La sintassi è:

static boolean [] copyof (boolean [] originale, int newLength)

Originale è il nome dell'array originale. newlength è la lunghezza dell'array nuovo o copiato. Se è più breve, la copia viene troncata a NewLength. Se è più lungo, false viene imbottito come valori per il nuovo array per avere la nuova lunghezza. Il seguente programma illustra questo:

Importa Java.util.Array;
Classe pubblica TheClass
public static void main (string [] args)
booleano [] orig = vero, vero, vero, vero, vero;
booleano [] cpy1 = array.copyof (orig, 3);
per (int i = 0; i< cpy1.length; i++) System.out.print(cpy1[i]); System.out.print("); System.out.println();
booleano [] cpy2 = array.copyof (orig, 5);
per (int i = 0; i< cpy2.length; i++) System.out.print(cpy2[i]); System.out.print("); System.out.println();
booleano [] cpy3 = ​​array.copyof (orig, 7);
per (int i = 0; i< cpy3.length; i++) System.out.print(cpy3[i]); System.out.print("); System.out.println();

L'output è:

vero vero vero
vero vero vero vero vero
vero vero vero vero falso falso

Per la prima linea di output, c'è troncamento. Per la seconda linea di uscita, entrambi gli array sono gli stessi. Il nuovo array è più lungo dell'array originale per la terza linea di uscita.

La lunghezza del nuovo array è determinata dal parametro newLength della sintassi del metodo Copyof ().

Copia di una matrice di valori di byte

La sintassi è:

byte statico [] copyof (byte [] originale, int newLength)

Originale è il nome dell'array originale. newlength è la lunghezza dell'array nuovo o copiato. Se è più breve, la copia viene troncata a NewLength. Se è più lungo, 0 è imbottito come valori al nuovo array, per avere la nuova lunghezza. Il seguente codice metodo principale () illustra questo:

byte statico [] copyof (byte [] originale, int newLength)
Originale è il nome dell'array originale. newlength è la lunghezza dell'array nuovo o copiato. Se è più breve, la copia viene troncata a NewLength. Se è più lungo, 0 è imbottito come valori al nuovo array, per avere la nuova lunghezza. Il seguente codice metodo principale () illustra questo:
public static void main (string [] args)
byte [] orig = 1, 2, 3, 4, 5;
byte [] cpy1 = array.copyof (orig, 3);
per (int i = 0; i< cpy1.length; i++) System.out.print(cpy1[i]); System.out.print("); System.out.println();
byte [] cpy2 = array.copyof (orig, 5);
per (int i = 0; i< cpy2.length; i++) System.out.print(cpy2[i]); System.out.print("); System.out.println();
byte [] cpy3 = ​​array.copyof (orig, 7);
per (int i = 0; i< cpy3.length; i++) System.out.print(cpy3[i]); System.out.print("); System.out.println();

L'output è:

1 2 3
1 2 3 4 5
1 2 3 4 5 0 0

La lunghezza del nuovo array è determinata dal parametro newLength della sintassi del metodo Copyof ().

Copia di una matrice di valori Char

La sintassi è:

statico char [] copyof (char [] originale, int newLength)

Originale è il nome dell'array originale. newlength è la lunghezza dell'array nuovo o copiato. Se è più breve, la copia viene troncata a NewLength. Se è più lungo ", è imbottito come valori del nuovo array, per avere la nuova lunghezza. Esempio di codice:

public static void main (string [] args)
char [] orig = 'a', 'b', 'c', 'd', 'e';
char [] cpy1 = array.copyof (orig, 3);
per (int i = 0; i< cpy1.length; i++) System.out.print(cpy1[i]); System.out.print("); System.out.println();
char [] cpy2 = array.copyof (orig, 5);
per (int i = 0; i< cpy2.length; i++) System.out.print(cpy2[i]); System.out.print("); System.out.println();
char [] cpy3 = ​​array.copyof (orig, 7);
per (int i = 0; i< cpy3.length; i++) System.out.print(cpy3[i]); System.out.print("); System.out.println();

L'output è:

A b c
A b c d e
A b c d e "

La lunghezza del nuovo array è determinata dal parametro newLength della sintassi del metodo Copyof ().

Copia di una serie di doppi valori

La sintassi è:

statico double [] copyof (double [] originale, int newLength)

Originale è il nome dell'array originale. newlength è la lunghezza dell'array nuovo o copiato. Se è più breve, la copia viene troncata a NewLength. Se è più lungo, 0.0 è imbottito come valori al nuovo array, per avere la nuova lunghezza. Esempio di codice:

public static void main (string [] args)
double [] orig = 1.5, 2.5, 3.5, 4.5, 5.5;
doppio [] cpy1 = array.copyof (orig, 3);
per (int i = 0; i< cpy1.length; i++) System.out.print(cpy1[i]); System.out.print("); System.out.println();
doppio [] cpy2 = array.copyof (orig, 5);
per (int i = 0; i< cpy2.length; i++) System.out.print(cpy2[i]); System.out.print("); System.out.println();
doppio [] cpy3 = ​​array.copyof (orig, 7);
per (int i = 0; i< cpy3.length; i++) System.out.print(cpy3[i]); System.out.print("); System.out.println();

L'output è:

1.5 2.5 3.5
1.5 2.5 3.5 4.5 5.5
1.5 2.5 3.5 4.5 5.5 0.0 0.0

La lunghezza del nuovo array è determinata dal parametro newLength della sintassi del metodo Copyof ().

Copia di una serie di valori float

La sintassi è:

static float [] copyof (float [] originale, int newlength)

Originale è il nome dell'array originale. newlength è la lunghezza dell'array nuovo o copiato. Se è più breve, la copia viene troncata a NewLength. Se è più lungo, 0.0 è imbottito come valori al nuovo array, per avere la nuova lunghezza. Esempio di codice:

public static void main (string [] args)
float [] orig = 1.5f, 2.5f, 3.5f, 4.5f, 5.5f;
float [] cpy1 = array.copyof (orig, 3);
per (int i = 0; i< cpy1.length; i++) System.out.print(cpy1[i]); System.out.print("); System.out.println();
float [] cpy2 = array.copyof (orig, 5);
per (int i = 0; i< cpy2.length; i++) System.out.print(cpy2[i]); System.out.print("); System.out.println();
float [] cpy3 = ​​array.copyof (orig, 7);
per (int i = 0; i< cpy3.length; i++) System.out.print(cpy3[i]); System.out.print("); System.out.println();

L'output è:

1.5 2.5 3.5
1.5 2.5 3.5 4.5 5.5
1.5 2.5 3.5 4.5 5.5 0.0 0.0

La lunghezza del nuovo array è determinata dal parametro newLength della sintassi del metodo Copyof ().

Copia di una serie di valori int

La sintassi è:

static int [] copyof (int [] originale, int newLength)

Originale è il nome dell'array originale. newlength è la lunghezza dell'array nuovo o copiato. Se è più breve, la copia viene troncata a NewLength. Se è più lungo, 0 è imbottito come valori al nuovo array, per avere la nuova lunghezza. Esempio di codice:

public static void main (string [] args)
int [] orig = 1, 2, 3, 4, 5;
int [] cpy1 = array.copyof (orig, 3);
per (int i = 0; i< cpy1.length; i++) System.out.print(cpy1[i]); System.out.print("); System.out.println();
int [] cpy2 = array.copyof (orig, 5);
per (int i = 0; i< cpy2.length; i++) System.out.print(cpy2[i]); System.out.print("); System.out.println();
int [] cpy3 = ​​array.copyof (orig, 7);
per (int i = 0; i< cpy3.length; i++) System.out.print(cpy3[i]); System.out.print("); System.out.println();

L'output è:

1 2 3
1 2 3 4 5
1 2 3 4 5 0 0

La lunghezza del nuovo array è determinata dal parametro newLength della sintassi del metodo Copyof ().

Copia di una serie di valori lunghi

La sintassi è:

static long [] copyof (long [] originale, int newLength)

Originale è il nome dell'array originale. newlength è la lunghezza dell'array nuovo o copiato. Se è più breve, la copia viene troncata a NewLength. Se è più lungo, 0 è imbottito come valori al nuovo array, per avere la nuova lunghezza. Esempio di codice:

public static void main (string [] args)
long [] orig = 1, 2, 3, 4, 5;
Long [] cpy1 = array.copyof (orig, 3);
per (int i = 0; i< cpy1.length; i++) System.out.print(cpy1[i]); System.out.print("); System.out.println();
Long [] cpy2 = array.copyof (orig, 5);
per (int i = 0; i< cpy2.length; i++) System.out.print(cpy2[i]); System.out.print("); System.out.println();
Long [] cpy3 = ​​array.copyof (orig, 7);
per (int i = 0; i< cpy3.length; i++) System.out.print(cpy3[i]); System.out.print("); System.out.println();

L'output è:

1 2 3
1 2 3 4 5
1 2 3 4 5 0 0

La lunghezza del nuovo array è determinata dal parametro newLength della sintassi del metodo Copyof ().

Copia di una serie di valori brevi

La sintassi è:

static short [] copyof (short [] originale, int newLength)

Originale è il nome dell'array originale. newlength è la lunghezza dell'array nuovo o copiato. Se è più breve, la copia viene troncata a NewLength. Se è più lungo, 0 è imbottito come valori al nuovo array, per avere la nuova lunghezza. Esempio di codice:

public static void main (string [] args)
short [] orig = 1, 2, 3, 4, 5;
corto [] cpy1 = array.copyof (orig, 3);
per (int i = 0; i< cpy1.length; i++) System.out.print(cpy1[i]); System.out.print("); System.out.println();
corto [] cpy2 = array.copyof (orig, 5);
per (int i = 0; i< cpy2.length; i++) System.out.print(cpy2[i]); System.out.print("); System.out.println();
corto [] cpy3 = ​​array.copyof (orig, 7);
per (int i = 0; i< cpy3.length; i++) System.out.print(cpy3[i]); System.out.print("); System.out.println();

L'output è:

1 2 3
1 2 3 4 5
1 2 3 4 5 0 0

Copia di una serie di tipi di dati di riferimento

Un buon esempio del tipo di dati di riferimento è l'oggetto stringa, istanziato dalla classe stringa. La sua sintassi copyof () è uguale alle sintassi sopra. Il seguente codice illustra questo:

Importa Java.util.Array;
Classe pubblica TheClass
public static void main (string [] args)
String [] orig = "one", "due", "tre", "quattro", "cinque";
String [] cpy1 = array.copyof (orig, 3);
per (int i = 0; i< cpy1.length; i++) System.out.print(cpy1[i]); System.out.print("); System.out.println();
String [] cpy2 = array.copyof (orig, 5);
per (int i = 0; i< cpy2.length; i++) System.out.print(cpy2[i]); System.out.print("); System.out.println();
String [] cpy3 = ​​array.copyof (orig, 7);
per (int i = 0; i< cpy3.length; i++) System.out.print(cpy3[i]); System.out.print("); System.out.println();

L'output è:

uno due tre
uno due tre quattro cinque
Uno due tre quattro cinque null null

Il valore predefinito per il tipo di dati di riferimento è nullo.

Copia di un intervallo

La gamma di un array può essere copiata. La sintassi per copiare l'intervallo di una matrice di caratteri è:

statico char [] copyofrange (char [] originale, int da, int to)

"Da" è il primo indice e "a" è l'ultimo indice, il cui valore dell'intervallo non è incluso, nella copia. Codice di esempio:

public static void main (string [] args)
char [] orig = 'a', 'b', 'c', 'd', 'e';
char [] cpy = array.CopyOfRange (orig, 1, 3);
per (int i = 0; i

L'output è:

AVANTI CRISTO

Copia degli intervalli di tipi di dati primitivi e di riferimento è simile a questo codice.

Conclusione

La classe Array ha il metodo sovraccarico statico per copiare array. Viene utilizzato per copiare l'intero array. Se l'array copiato è breve, la copia verrà fatta alla lunghezza troncata indicata. Se l'array copiato è più lungo dell'array originale, il valore predefinito verrà imbottito per gli elementi aggiuntivi aggiuntivi. Il metodo statico copyofrange () può essere utilizzato per copiare un intervallo. La prossima cosa che il lettore dovrebbe studiare è come copiare una serie di tipi generici, .