Cómo copiar la matriz en Java

Cómo copiar la matriz en Java
Si se copia una matriz a otra, el resultado debe ser que hay dos matrices independientes con dos nombres diferentes pero con los mismos valores correspondientes. Un cambio en el valor de un elemento de matriz no debe dar lugar a ningún cambio en el elemento correspondiente de la otra matriz.

Cuando una matriz se copia realmente a otra, si la longitud de la nueva matriz es más corta que la longitud de la matriz original, entonces la nueva matriz es una copia pero se trunca a la longitud copiada. Si la nueva matriz es más larga, entonces los elementos adicionales hacia su final se llenan con los valores predeterminados del tipo de datos. Para que una matriz se copie a otra, ambas matrices deben ser del mismo tipo o tipos compatibles.

Java tiene un método para copiar una matriz a otra. Este método es el método copyOf (), y está sobrecargado para los diferentes tipos de datos. Es un método estático de la clase de matriz. "Estático" significa que una matriz no tiene que ser instanciada para que el método se utilice. Utiliza el nombre de clase, matriz, con el primer 'a' en mayúscula. El método devuelve la matriz copiada. Este artículo explica los diferentes formularios sobrecargados del método copyOf (). Incluye cómo copiar los tipos de referencia. Cómo copiar un rango de matriz no se queda fuera.

Copiar una variedad de valores booleanos

La sintaxis es:

Booleano estático [] COPYOF (BOOLEAN [] original, int NewLength)

original es el nombre de la matriz original. NewLength es la longitud de la matriz nueva o copiada. Si es más corto, la copia se trunca en NewLength. Si es más largo, False está acolchado como valores para la nueva matriz para tener la nueva longitud. El siguiente programa ilustra esto:

importar java.utilizar.Matrices;
clase pública THECLASS
public static void main (string [] args)
booleano [] orig = verdadero, verdadero, verdadero, verdadero, verdadero;
booleano [] cpy1 = matrices.copia de (orig, 3);
para (int i = 0; i< cpy1.length; i++) System.out.print(cpy1[i]); System.out.print("); System.out.println();
booleano [] cpy2 = matrices.copia de (orig, 5);
para (int i = 0; i< cpy2.length; i++) System.out.print(cpy2[i]); System.out.print("); System.out.println();
booleano [] cpy3 = ​​matrices.copia de (orig, 7);
para (int i = 0; i< cpy3.length; i++) System.out.print(cpy3[i]); System.out.print("); System.out.println();

La salida es:

verdad verdad verdad
verdadero verdadero verdadero verdadero verdadero
verdadero verdadero verdadero verdadero verdadero falso falso

Para la primera línea de salida, hay truncamiento. Para la segunda línea de salida, ambas matrices son las mismas. La nueva matriz es más larga que la matriz original para la tercera línea de salida.

La longitud de la nueva matriz está determinada por el parámetro NewLength de la sintaxis del método CopyOf ().

Copiar una matriz de valores de bytes

La sintaxis es:

Byte estático [] COPYOF (BYTE [] original, int NewLength)

original es el nombre de la matriz original. NewLength es la longitud de la matriz nueva o copiada. Si es más corto, la copia se trunca en NewLength. Si es más largo, 0 está acolchado como valores para la nueva matriz, para tener la nueva longitud. El siguiente código de método principal () ilustra esto:

Byte estático [] COPYOF (BYTE [] original, int NewLength)
original es el nombre de la matriz original. NewLength es la longitud de la matriz nueva o copiada. Si es más corto, la copia se trunca en NewLength. Si es más largo, 0 está acolchado como valores para la nueva matriz, para tener la nueva longitud. El siguiente código de método principal () ilustra esto:
public static void main (string [] args)
byte [] orig = 1, 2, 3, 4, 5;
byte [] cpy1 = matrices.copia de (orig, 3);
para (int i = 0; i< cpy1.length; i++) System.out.print(cpy1[i]); System.out.print("); System.out.println();
byte [] cpy2 = matrices.copia de (orig, 5);
para (int i = 0; i< cpy2.length; i++) System.out.print(cpy2[i]); System.out.print("); System.out.println();
byte [] cpy3 = ​​matrices.copia de (orig, 7);
para (int i = 0; i< cpy3.length; i++) System.out.print(cpy3[i]); System.out.print("); System.out.println();

La salida es:

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

La longitud de la nueva matriz está determinada por el parámetro NewLength de la sintaxis del método CopyOf ().

Copiar una matriz de valores de char

La sintaxis es:

static char [] copyof (char [] original, int newLength)

original es el nombre de la matriz original. NewLength es la longitud de la matriz nueva o copiada. Si es más corto, la copia se trunca en NewLength. Si es más largo, "está acolchado como valores para la nueva matriz, para tener la nueva longitud. Ejemplo de código:

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

La salida es:

A B C
A B C D E
A B C D E"

La longitud de la nueva matriz está determinada por el parámetro NewLength de la sintaxis del método CopyOf ().

Copiar una matriz de valores dobles

La sintaxis es:

static double [] copyof (doble [] original, int NewLength)

original es el nombre de la matriz original. NewLength es la longitud de la matriz nueva o copiada. Si es más corto, la copia se trunca en NewLength. Si es más largo, 0.0 está acolchado como valores para la nueva matriz, para tener la nueva longitud. Ejemplo de código:

public static void main (string [] args)
Double [] orig = 1.5, 2.5, 3.5, 4.5, 5.5;
Doble [] CPY1 = Arrays.copia de (orig, 3);
para (int i = 0; i< cpy1.length; i++) System.out.print(cpy1[i]); System.out.print("); System.out.println();
Doble [] cpy2 = matrices.copia de (orig, 5);
para (int i = 0; i< cpy2.length; i++) System.out.print(cpy2[i]); System.out.print("); System.out.println();
Doble [] CPY3 = Matrices.copia de (orig, 7);
para (int i = 0; i< cpy3.length; i++) System.out.print(cpy3[i]); System.out.print("); System.out.println();

La salida es:

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 longitud de la nueva matriz está determinada por el parámetro NewLength de la sintaxis del método CopyOf ().

Copiar una variedad de valores flotantes

La sintaxis es:

float estático [] copyof (float [] original, int newLength)

original es el nombre de la matriz original. NewLength es la longitud de la matriz nueva o copiada. Si es más corto, la copia se trunca en NewLength. Si es más largo, 0.0 está acolchado como valores para la nueva matriz, para tener la nueva longitud. Ejemplo de código:

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

La salida es:

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 longitud de la nueva matriz está determinada por el parámetro NewLength de la sintaxis del método CopyOf ().

Copiar una matriz de valores int

La sintaxis es:

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

original es el nombre de la matriz original. NewLength es la longitud de la matriz nueva o copiada. Si es más corto, la copia se trunca en NewLength. Si es más largo, 0 está acolchado como valores para la nueva matriz, para tener la nueva longitud. Ejemplo de código:

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

La salida es:

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

La longitud de la nueva matriz está determinada por el parámetro NewLength de la sintaxis del método CopyOf ().

Copiar una variedad de valores largos

La sintaxis es:

static long [] copyof (largo [] original, int NewLength)

original es el nombre de la matriz original. NewLength es la longitud de la matriz nueva o copiada. Si es más corto, la copia se trunca en NewLength. Si es más largo, 0 está acolchado como valores para la nueva matriz, para tener la nueva longitud. Ejemplo de código:

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

La salida es:

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

La longitud de la nueva matriz está determinada por el parámetro NewLength de la sintaxis del método CopyOf ().

Copiar una variedad de valores cortos

La sintaxis es:

static short [] copyof (corto [] original, int newLength)

original es el nombre de la matriz original. NewLength es la longitud de la matriz nueva o copiada. Si es más corto, la copia se trunca en NewLength. Si es más largo, 0 está acolchado como valores para la nueva matriz, para tener la nueva longitud. Ejemplo de código:

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

La salida es:

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

Copiar una variedad de tipos de datos de referencia

Un buen ejemplo del tipo de datos de referencia es el objeto de cadena, instanciado desde la clase de cadena. Su sintaxis copyOf () es la misma que las sintaxis anteriores. El siguiente código ilustra esto:

importar java.utilizar.Matrices;
clase pública THECLASS
public static void main (string [] args)
String [] orig = "one", "dos", "tres", "cuatro", "cinco";
Cadena [] cpy1 = matrices.copia de (orig, 3);
para (int i = 0; i< cpy1.length; i++) System.out.print(cpy1[i]); System.out.print("); System.out.println();
Cadena [] cpy2 = matrices.copia de (orig, 5);
para (int i = 0; i< cpy2.length; i++) System.out.print(cpy2[i]); System.out.print("); System.out.println();
Cadena [] cpy3 = ​​matrices.copia de (orig, 7);
para (int i = 0; i< cpy3.length; i++) System.out.print(cpy3[i]); System.out.print("); System.out.println();

La salida es:

Uno, dos, tres
uno dos tres CUATRO CINCO
uno dos tres cuatro cinco nulo nulo

El valor predeterminado para el tipo de datos de referencia es nulo.

Copiar un rango

El rango de una matriz se puede copiar. La sintaxis para copiar el rango de una matriz de caracteres es:

static char [] copyOfrange (char [] original, int from, int to)

"De" es el primer índice, y "to" es el último índice, cuyo valor del rango, simplemente no está incluido, en la copia. Código de ejemplo:

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

La salida es:

ANTES DE CRISTO

Copiar los rangos de tipos de datos primitivos y de referencia es similar a este código.

Conclusión

La clase de matriz tiene el método sobrecargado estático para copiar matrices. Se usa para copiar toda la matriz. Si la matriz copiada es corta, se realizará copia a la longitud truncada indicada. Si la matriz copiada es más larga que la matriz original, el valor predeterminado se acolchará para los elementos adicionales adicionales. El método estático copyOfRange () se puede usar para copiar un rango. Lo siguiente que el lector debe estudiar es cómo copiar una variedad de tipos genéricos, .