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;La salida es:
verdad verdad verdadPara 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)La salida es:
1 2 3La 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)La salida es:
A B CLa 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)La salida es:
1.5 2.5 3.5La 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)La salida es:
1.5 2.5 3.5La 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)La salida es:
1 2 3La 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)La salida es:
1 2 3La 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)La salida es:
1 2 3Copiar 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;La salida es:
Uno, dos, tresEl 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)La salida es:
ANTES DE CRISTOCopiar 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, .