集合工具类CollectionUtil
程序员文章站
2024-01-12 16:39:10
...
package com.yung.ppapi.util;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.ArrayList;
import java.util.List;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.alibaba.fastjson.JSON;
import com.yung.ppapi.integration.dto.SiteDTO;
public class CollectionUtil {
private static final Logger logger = LoggerFactory.getLogger(CollectionUtil.class);
/**
* 使用序列化方法,实现深层复制,性能不高
* @param srcList
* @return
*/
@SuppressWarnings("unchecked")
public static <T> List<T> deepCopy(List<T> srcList) {
try {
ByteArrayOutputStream byteOut = new ByteArrayOutputStream();
ObjectOutputStream out = new ObjectOutputStream(byteOut);
out.writeObject(srcList);
out.close();
ByteArrayInputStream byteIn = new ByteArrayInputStream(byteOut.toByteArray());
ObjectInputStream in = new ObjectInputStream(byteIn);
return (List<T>) in.readObject();
} catch (Exception e) {
logger.error("deepCopy method error:", e);
}
return null;
}
// public static void main(String[] args) {
// List<SiteDTO> srcList = new ArrayList<SiteDTO>();
// SiteDTO site1 = new SiteDTO();
// site1.setSiteId("1");
// srcList.add(site1);
// SiteDTO site2 = new SiteDTO();
// site2.setSiteId("2");
// srcList.add(site2);
// List<SiteDTO> desList = deepCopy(srcList);
// List<SiteDTO> subSiteList = srcList.subList(0, 1);
// System.out.println("srcList=" + JSON.toJSONString(srcList));
// System.out.println("desList=" + JSON.toJSONString(desList));
// System.out.println("subSiteList=" + JSON.toJSONString(subSiteList));
// site1.setSiteName("name1");
// System.out.println("srcList=" + JSON.toJSONString(srcList));
// System.out.println("desList=" + JSON.toJSONString(desList));
// System.out.println("subSiteList=" + JSON.toJSONString(subSiteList));
// subSiteList.clear();
// System.out.println("srcList=" + JSON.toJSONString(srcList));
// System.out.println("desList=" + JSON.toJSONString(desList));
// System.out.println("subSiteList=" + JSON.toJSONString(subSiteList));
// }
}
下一篇: ADO.net