java 深拷贝与浅拷贝
在 Java 中,List 是一个接口,常见的实现类有 ArrayList 和 LinkedList。当我们需要复制一个 List 时,通常有两种方法:浅拷贝和深拷贝。浅拷贝只复制 List 中的引用,而深拷贝则会复制 List 中的所有元素。下面我们来看一下如何实现 List 的深拷贝。
假设我们有一个 Person 类,包含 name 和 age 两个属性:
csharp public class Person { private String name; private int age;
public Person(String name, int age) { this.name = name; this.age = age; }
public String getName() { return name; }
public int getAge() { return age; } }
现在我们有一个 List,其中包含了一些 Person 对象:
java import java.util.ArrayList; import java.util.List;
public class DeepCopyExample { public static void main(String[] args) { List
要实现 List 的深拷贝,可以使用 java.util.ArrayList 的构造函数:
java import java.util.ArrayList; import java.util.List;
public class DeepCopyExample { public static void main(String[] args) { List
// 深拷贝 List
上述代码中,我们使用 ArrayList 的构造函数来创建一个新的 List,并将原始列表作为参数传递进去。这样创建的新列表就是原始列表的深拷贝。