Copia profunda y copia superficial de Java

En Java, List es una interfaz y las clases de implementación comunes son ArrayList y LinkedList. Cuando necesitamos copiar una Lista, generalmente hay dos métodos: copia superficial y copia profunda. Una copia superficial solo copia las referencias de la Lista, mientras que una copia profunda copia todos los elementos de la Lista. Echemos un vistazo a cómo implementar una copia profunda de List.

Supongamos que tenemos una clase Person con dos propiedades name y age:

csharp
public class Persona {     private String nombre;     edad interna privada;

    public Person(String name, int age) {         this.name = name;         esta.edad = edad;     }


    public String getName() {         devolver nombre;     }

    public int getEdad() {         edad de retorno;     } }


Ahora tenemos una Lista que contiene algunos objetos Persona:

java
import java.util.ArrayList;
importar java.util.List;

clase pública DeepCopyExample {     public static void main(String[] args) {         List<Person> list = new ArrayList<>();         list.add(nueva Persona("Tom", 18));         list.add(nueva Persona("Jerry", 20));         list.add(nueva Persona("Mike", 22));         System.out.println("Lista original: " + lista);     } }







Para implementar una copia profunda de List, puede usar el constructor de java.util.ArrayList:

java
import java.util.ArrayList;
importar java.util.List;

clase pública DeepCopyExample {     public static void main(String[] args) {         List<Person> list = new ArrayList<>();         list.add(nueva Persona("Tom", 18));         list.add(nueva Persona("Jerry", 20));         list.add(nueva Persona("Mike", 22));         System.out.println("Lista original: " + lista);





        // 深拷贝
        List<Person> copy = new ArrayList<>(lista);
        System.out.println("Copiar lista: " + copiar);
    }
}

En el código anterior, usamos el constructor de ArrayList para crear una nueva lista y pasar la lista original como parámetro. La nueva lista así creada es una copia profunda de la lista original.

 
 

Supongo que te gusta

Origin blog.csdn.net/luansj/article/details/131114218
Recomendado
Clasificación