繁体   English   中英

ArrayList深度复制

[英]ArrayList Deep Copy

我有以下代码创建了arraylist的浅表副本,但是,我想将其更改为创建深表副本,但不确定如何。 我尝试过在线查找,但找不到真正的答案。

我的代码现在是:

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);
    }

您可以使用Apache Commons的SerializationUtils。
要使用SerializationUtils,类必须实现Serializable接口。 参考

深拷贝将是这样的

ArrayList<Double> list1 = new ArrayList<>();
    list1.add(1.5);
    list1.add(2.5);
    list1.add(3.5);

ArrayList<Double> list2 = new ArrayList<Double>();

for (Double d : list1){
list2.add(d);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM