目录
概述
例如目前你有一个list,list里面有{1,2,3}3个数据,然后你要拷贝出来,这时候深拷贝就是完整的把数据拷贝出来到,新的list,而浅拷贝只是讲新list的值指向老的list,当对新的list值做出改变的时候,老的list值也会发生变化。
深拷贝
public static <T> List<T> deepCopy(List<T> src) throws IOException, ClassNotFoundException {
ByteArrayOutputStream byteOut = new ByteArrayOutputStream();
ObjectOutputStream out = new ObjectOutputStream(byteOut);
out.writeObject(src);
ByteArrayInputStream byteIn = new ByteArrayInputStream(byteOut.toByteArray());
ObjectInputStream in = new ObjectInputStream(byteIn);
@SuppressWarnings("unchecked")
List<T> dest = (List<T>) in.readObject();
return dest;
}
调用深拷贝方法
try {newList= deepCopy(oldList);}
catch (Exception e){}