欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

集合工具类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));
//	}
}