最近在工作的时候,有一个小需求,需要复制List的内容,然后会改变其中的数据,但是试了几种复制的方法,都是将原有的数据和复制后的数据都改变了,都没有达到我想要的效果。

其中涉及到了 “浅复制”和“深复制”的概念,这里不多说,可以参考这篇浅复制和深复制。我只记录了这一个深复制的代码,网上找的其它的深复制,好像不起作用。下面是代码:

/**
* 深度拷贝
* @param src
* @param <>
* @return
* @throws IOException
* @throws ClassNotFoundException
*/
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;
}

总结

工作中记录一下,下次方便使用。

最新文章

  1. 用ProxyFactoryBean创建AOP代理
  2. 为Debian/Ubuntu的apt-get install添加自动补齐/完成功能
  3. C#可空类型的速度和GC Alloc测试
  4. 第一次点击Div1显示Div2,再次点击Div1的时候又隐藏Div2
  5. 【BZOJ】3757: 苹果树
  6. jsp页面向后台传值出现乱码的问题
  7. webstorm 代码自动换行
  8. 运输装备(codevs 1669)
  9. 工作中遇到的问题--实现程序运行时就加载CustomerSetting的第二种方法
  10. python库:fuzzywuzzy
  11. 生成树的计数(基尔霍夫矩阵):UVAoj 10766 Organising the Organisation SPOJ HIGH - Highways
  12. 第一次QQ群视频教育有感
  13. cocos2d+TexturePackerGUI动画制作
  14. java后台通过Servlet给用户发送手机短信验证码,第一次写勿喷,欢迎转载
  15. 套接字输入流——InputStream
  16. Java IO学习--(一)概述
  17. iOS拼音搜索,拼音首字母搜索
  18. pytorch CNN 手写数字识别
  19. A1123. Is It a Complete AVL Tree
  20. 【转帖】流程与IT管理部——IT支撑业务变革的必然趋势

热门文章

  1. python【内置函数&amp;自定义函数】
  2. git 使用 gitignore
  3. python中高阶函数与装饰器(3)
  4. linux下sudo命令
  5. Mongo 后台加索引踩坑
  6. 线程中wait/notify/notifyAll的用法
  7. ConcurrentHashMap 产生NullPointerException
  8. Mongodb开启远程连接并认证
  9. python核心编程笔记——Chapter2
  10. 如何给自己的PHP项目制作安装程序