Java深度复制List内容。
2024-08-29 19:57:29
最近在工作的时候,有一个小需求,需要复制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;
}
总结
工作中记录一下,下次方便使用。
最新文章
- 用ProxyFactoryBean创建AOP代理
- 为Debian/Ubuntu的apt-get install添加自动补齐/完成功能
- C#可空类型的速度和GC Alloc测试
- 第一次点击Div1显示Div2,再次点击Div1的时候又隐藏Div2
- 【BZOJ】3757: 苹果树
- jsp页面向后台传值出现乱码的问题
- webstorm 代码自动换行
- 运输装备(codevs 1669)
- 工作中遇到的问题--实现程序运行时就加载CustomerSetting的第二种方法
- python库:fuzzywuzzy
- 生成树的计数(基尔霍夫矩阵):UVAoj 10766 Organising the Organisation SPOJ HIGH - Highways
- 第一次QQ群视频教育有感
- cocos2d+TexturePackerGUI动画制作
- java后台通过Servlet给用户发送手机短信验证码,第一次写勿喷,欢迎转载
- 套接字输入流——InputStream
- Java IO学习--(一)概述
- iOS拼音搜索,拼音首字母搜索
- pytorch CNN 手写数字识别
- A1123. Is It a Complete AVL Tree
- 【转帖】流程与IT管理部——IT支撑业务变革的必然趋势