[英]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.