ArrayList深层复制

问题描述 投票:0回答:2

我有以下代码创建一个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);
    }
java arrays arraylist deep-copy
2个回答
0
投票

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


0
投票

深拷贝就是这样的

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);
}
© www.soinside.com 2019 - 2024. All rights reserved.