【发布时间】:2015-10-11 18:00:09
【问题描述】:
我有以下代码创建数组列表的浅表副本,但是,我想将其更改为创建深层副本,但我不确定如何。我已经尝试在网上查找,但无法真正找到答案。
我现在的代码是:
public class Array {
public static void main(String[] args) {
ArrayList<Double> list1 = new ArrayList<>();
list1.add(1.5);
list1.add(2.5);
list1.add(3.5);
ArrayList<Double> list2 = (ArrayList<Double>)list1.clone();
ArrayList<Double> list3 = list1;
list2.add(4.5);
list3.remove(1.5);
System.out.println("list1 is " + list1);
System.out.println("list2 is " + list2);
System.out.println("list3 is " + list3);
}
【问题讨论】:
-
我厌倦了,但我似乎无法让这种方法发挥作用,不确定我做错了什么
-
为什么要一个不可变类的深拷贝???您的代码 sn-p 应该演示什么?这是按预期工作的,它不会做任何不同的事情,即使你做了那个
ArrayList的深层副本。 -
我只是想让它证明一个列表是另一个列表的深层克隆
标签: java arrays arraylist deep-copy