我有以下代码创建一个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接口。 Reference
深拷贝就是这样的
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);
}