Javascript Copia Matriz De Objetos Sin Referencia
array Python module |
Arrays |
ast Python module |
code Python module |
COM PHP module |
copy Python module |
dis Python module |
Ev PHP module |
exp |
imp Python module |
io Python module |
JavaScript |
Mocha JavaScript library |
Network PHP module |
operator Python module |
os Python module |
Python functions |
Rar PHP module |
re Python module |
StackOverflow |
string Python module |
sys Python module |
Yar PHP module
Michael Zippo
04.11.2021
Cuando trabaje con matrices en Java, puede decidir que desea crear una copia de una matriz. Por ejemplo, si tiene una cafeterìa y desea crear un men√∫ de temporada, es posible que desee crear una copia de su men√∫ original en la que se pueda basar el nuevo men√∫.
En Java, hay varias formas de copiar una matriz. Este tutorial explorará cuatro métodos comunes para copiar matrices y analizará còmo funcionan lìnea por lìnea. Después de leer este tutorial, serás un maestro en la copia de matrices en Java.
Matrices de Java
En Java, una matriz es un contenedor que contiene valores que contienen uno tipo √∫nico. Por ejemplo, una matriz se puede utilizar para almacenar una lista de libros o una lista de puntuaciones que los jugadores han obtenido en un juego de dardos.
Las matrices son √∫tiles cuando se desea trabajar con muchos juegos similares. valores porque puede almacenarlos todos en una colecciòn. Esto le permite condensar su còdigo y también ejecutar los mismos métodos en valores similares a la vez.
Suponga que queremos crear una matriz que almacene los cafés vendidos en nuestra cafeterìa. Podrìamos hacerlo usando este còdigo:
String [] coffees = {" Espresso & rdquo ;, " Mocha & rdquo ;, " Latte & rdquo ;, " Cappuccino & rdquo ;, " Vierta Over & rdquo ;, " Flat White "};
En este ejemplo, declaramos una matriz llamada cafés
que almacena valores de cadena. Nuestra matriz contiene seis valores.
A cada elemento de una matriz se le asigna un n√∫mero de ìndice, comenzando desde 0, que se puede usar para hacer referencia a elementos individualmente en una matriz.
Ahora que hemos explorado los conceptos básicos de las matrices de Java, podemos analizar los métodos que puede utilizar para copiar el contenido de su matriz.
Copiar matriz usando el operador de asignaciòn
Uno de los métodos de clonaciòn más comunes usado para copiar una matriz es usar el operador de asignaciòn. & nbsp;
El operador de asignaciòn se usa para asignar un valor a una matriz. Al usar el operador de asignaciòn, podemos asignar el contenido de una matriz existente a una nueva variable, que creará una copia de nuestra matriz existente.
Regresemos a la cafeterìa. Supongamos que queremos crear una copia de la matriz cafés
en la que basaremos nuestro men√∫ de café de verano. Podrìamos usar este còdigo para crear una copia de la matriz:
Nuestro còdigo devuelve:
Espresso, Mocha, Latte, Cappuccino, Pour Over, Flat White,
Analicemos nuestro còdigo. En la primera lìnea de còdigo dentro de nuestra clase CopyAssignment, declaramos una matriz llamada cafés
que almacena nuestro men√∫ de café estándar.
En la siguiente lìnea, usamos la asignaciòn operador para asignar el valor de cafés
a una nueva matriz llamada summer_coffees
. Luego creamos un " for-each " bucle que itera a través de cada elemento en la matriz summer_coffees
y lo imprime en la consola.
Hay una desventaja de usar este método: si cambia elementos de uno matriz, la otra matriz también se cambiará. Entonces, si cambiamos el valor de Latte
a Summer Latte
en nuestra lista de summer_coffees
, nuestra lista de cafés
también serìa cambiado.
Bucle para copiar matrices
El primer enfoque que discutimos para copiar una matriz & mdash; utilizando el operador de asignaciòn & mdash; crea lo que se llama una copia superficial.
Este es el caso porque hemos asignado un objeto de matriz existente a uno nuevo, lo que significa que cuando cambiamos cualquier objeto, ambos cambiarán & mdash; los dos objetos están vinculados.
Sin embargo, a menudo necesitamos crear una copia profunda. Las copias profundas copian los valores de un objeto existente y crean un nuevo objeto de matriz. Cuando crea una copia profunda, puede cambiar su nueva matriz sin afectar la original.
Un enfoque que puede usarse para crear una copia profunda es crear un para
bucle que itera a través del contenido de una matriz y crea una nueva matriz.
Supongamos que queremos crear una copia profunda de nuestra matriz cafés
llamada summer_coffees.
Esto debe ser una copia profunda porque planeamos cambiar el contenido de la matriz summer_coffees
para reflejar los nuevos cafés que ofreceremos en los meses de verano. & nbsp;
Aquì está el còdigo que usarìamos para crear una copia profunda usando un bucle for
:
Cuando ejecutamos nuestro còdigo, la salida es la siguiente:
[Espresso, Mocha, Latte, Cappuccino, Pour Over, Flat White]
Como puede ver, nuestro còdigo ha creado una copia de nuestra matriz original. Expliquemos paso a paso còmo funciona:
- Importamos
java.util.Arrays
que incluye el método toString (), y rsquo; Usaremos para imprimir nuestra matriz en la consola al final del ejemplo.
- Declaramos una matriz llamada
cafés
que almacena la lista de cafés en nuestro men√∫ estándar. - Inicializamos una matriz llamada
summer_coffees
que almacenará seis valores. - Usamos un bucle for para recorrer cada elemento en el
coffees
list. - Cada vez que se ejecuta el ciclo for, al elemento en el valor de ìndice
i
en summer_coffees se le asignará el elemento en el valor de ìndice i
en cafés. - Usamos Arrays.toString () para convertir
summer_coffees
en una cadena, luego imprimimos la nueva matriz con nuestros elementos copiados en la consola.
El método copyOfRange () de Java se utiliza para copiar Arrays.copyOfRange () es parte de la clase java.util.Arrays . Aquì está la sintaxis del método copyOfRange ():