系统运维系列 之List实现深拷贝(java应用)

Posted 琅晓琳

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了系统运维系列 之List实现深拷贝(java应用)相关的知识,希望对你有一定的参考价值。

浅拷贝调用方法:

遍历循环复制:
List<String> destList=new ArrayList<String>(srcList.size());  
for(String p : srcList)  
    destList.add(p);  
  
使用list.addAll()方法:
List<String> destList=new ArrayList<String>();  
destList.addAll(srcList);

深拷贝调用方法:

调用:
List<String> destList=deepCopy(srcList);
序列化实现方法:
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 (IOException e) 
        e.printStackTrace();
     catch (ClassNotFoundException e) 
        e.printStackTrace();
    
    return null;

原deepCopy方法地址:
(1) https://www.pianshen.com/article/17271053790/
参考地址:
(1) https://www.cnblogs.com/qingzhongcao/p/14681748.html
(2) https://blog.csdn.net/xmtblog/article/details/116868273
(3) https://blog.csdn.net/zbw125/article/details/116270576? utm_medium=distribute.pc_relevant.none-task-blog-2defaultbaidujs_title~default-0.pc_relevant_default&spm=1001.2101.3001.4242.1&utm_relevant_index= 3

以上是关于系统运维系列 之List实现深拷贝(java应用)的主要内容,如果未能解决你的问题,请参考以下文章

系统运维系列 之实现servlet上传下载文件(java应用)

系统运维系列 之HashMap底层实现原理和应用

系统运维系列 之异常抛出后代码执行问题(java应用)

系统运维系列 之Socket和ServerSocket的简单介绍(java应用)

系统运维系列 之堆栈理解(java应用)

系统运维系列 之其它流概述及其分类(java应用)