我有以下代码创建了一个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);
}
答案 0 :(得分:0)
您可以使用Apache Commons的SerializationUtils。
要使用SerializationUtils,类必须实现 Serializable 接口。
Reference
答案 1 :(得分: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);
}