Método clone() de Java ArrayList
El método clone() se utiliza para copiar un ArrayList, y pertenece a la copia superficial.
Ampliación:
La copia superficial solo copia el puntero que apunta a un objeto, no copia el objeto en sí; los objetos nuevo y antiguo siguen compartiendo la misma memoria, por lo quesi uno de los objetos cambia esta dirección, afectará al otro objeto.。。
A la copia superficial le corresponde la copia profunda. La copia profunda copia completamente un objeto de la memoria, abre una nueva área en el montón (heap) para almacenar el nuevo objeto, ymodificar el nuevo objeto no afectará al objeto original.。
La sintaxis del método clone() es:
arraylist.clone()
Nota:arraylist es un objeto de la clase ArrayList.
Descripción de parámetros:
- Ninguno
Valor de retorno
Devuelve el objeto ArrayList.
Ejemplo
Use el método clone() de ArrayList para copiar un arreglo dinámico:
Ejemplo
class Main {
public static void main(String[] args){
// Crear un arreglo
ArrayList<String> sites = new ArrayList<>();
sites.add("Google");
sites.add("Ejemplo");
sites.add("Taobao");
System.out.println("Lista de sitios web: " + sites);
// Copiar sites
ArrayList<String> cloneSites = (ArrayList<String>)sites.clone();
System.out.println("ArrayList copiado: " + cloneSites);
}
}
La salida del programa anterior es:
网站列表: [Google, Ejemplo, Taobao] 拷贝 ArrayList: [Google, Ejemplo, Taobao]
En el ejemplo anterior, creamos un arreglo dinámico llamado sites. Observe la expresión:
(ArrayList<String>)sites.clone();
- sites.clone()- devuelve el objeto sites copiado
- (ArrayList <String>)- el valor devuelto se convierte en un ArrayList de tipo String
Imprimir el valor de retorno del método clone()
Ejemplo
class Main {
public static void main(String[] args){
// Crear un arreglo
ArrayList<String> sites = new ArrayList<>();
sites.add("Google");
sites.add("Ejemplo");
sites.add("Taobao");
System.out.println("Lista de sitios web: " + sites);
// Imprimir el valor devuelto por el método clone()
System.out.println("Valor de retorno de clone(): " + sites.clone());
}
}
La salida del programa anterior es:
网站列表: [Google, Ejemplo, Taobao] clone() 返回值: [Google, Ejemplo, Taobao]
En el ejemplo anterior, creamos un arreglo dinámico llamado sites. Y aquí imprimimos el valor de retorno del método clone().
Nota:El método clone() no es un método específico de la clase ArrayList. Cualquier clase que herede la interfaz Cloneable puede usar el método clone().
Otras extensiones
Java ArrayList