list集合深拷贝,采用以下方式拷贝即可:
工具类
/**
* 项目名称:collection-common
* 项目包名:com.collection.common.utils
* 创建时间:2018年7月22日下午2:23:22
* 创建者:Administrator-宋发元
* 创建地点:浙江
*/
package com.collection.common.utils;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.List;
/**
* 描述:List工具类
* @author songfayuan
* 2018年7月22日下午2:23:22
*/
public class ListUtils {
/**
* 描述:list集合深拷贝
* @param src
* @return
* @throws IOException
* @throws ClassNotFoundException
* @author songfayuan
* 2018年7月22日下午2:35:23
*/
public static <T> List<T> deepCopy(List<T> src) {
try {
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;
} catch (ClassNotFoundException e) {
e.printStackTrace();
return null;
} catch (IOException e) {
e.printStackTrace();
return null;
}
}
}
使用
List<具体类型> list = ListUtils.deepCopy(需要拷贝的list);