java如何对list进行深度复制
在开发过程中,一直以为list的addAll方法会对list做深度复制,然后经过实际的坑之后发现并不然,于是在热心网友的帮助下,找到一个相对比较靠谱简单的深度复制的方法,做一下笔记,代码如下:
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;}
java如何对list进行深度复制相关推荐
- 利用序列化与反序列化对Java对象进行深度复制
来源 http://lhg803.iteye.com/blog/407270 JDK的API中的java.lang.Object和Cloneable接口要完美实现深度clone时,都需要针对具体的类 ...
- java 对象深度复制_Java深度复制– Java复制对象
java 对象深度复制 Today we will look into Java deep copy. Sometimes we want to get a copy of an Object, bu ...
- JAVA 对象深度复制实现
JAVA 有两种深度复制实现方式,分别是实现Cloneabel接口,并在接口函数中为每个属性调用Cloneable,也可以通过序列化的方式来实现. package JAVAImprove;import ...
- java深度复制 xjh 亲测 两种方法
第一种:http://blog.chinaunix.net/uid-20577907-id-3132181.html (亲测有用) java 深度复制 2012-03-13 20:25:21 分类 ...
- java map 的复制,Java Map的深度复制和浅复制
来看一段代码,猜一下运行结果! //给 list 放入 2个map对象 Listlist = new ArrayList(); Map map1 = new HashMap(); map1.put(& ...
- Java Map深度复制
Map深度复制 目录 Map深度复制 1,new HashMap<>(Object); 2,Put All; 3,串行化复制; 总结: 如何对Map类型的数据进行深度复制,有几种方式呢? ...
- Java进阶之对象克隆(复制)
转载自 Java进阶之对象克隆(复制) 假如说你想复制一个简单变量.很简单: int apples = 5; int pears = apples; 不仅仅是int类型,其它七种原始数据类型(bo ...
- 对象的深度复制和浅复制 (深度拷贝和浅拷贝)
对象的深度复制和浅复制 (深度拷贝和浅拷贝) 作者:邓家海 时间:2018年2月11日 21:46:22 我们在实际的开发项目里面为了使得开发更加的便捷和方便,总会不经意的使用一些第三方的持久化框架( ...
- JS如何深度复制对象和数组,避免指针变量引用修改值
//自定义深度复制对象or数组的递归方法---------------------------------------- let copyObjOrArr = o => {let isArray ...
- 深度复制_Python 列表切片陷阱:引用、复制与深复制
Python 列表的切片和赋值操作很基础,之前也遇到过一些坑,以为自己很懂了.但今天刷 Codewars 时发现了一个更大的坑,故在此记录. Python 列表赋值:复制"值"还是 ...
最新文章
- Android运行时识别API版本
- 开源团队协作 TMS 2.4.0 版本发布
- java.sql.SQLSyntaxErrorException: Unknown database ‘spring‘
- g++默认参数_C ++默认参数| 查找输出程序| 套装1
- js 递归查询所有的叶子结点_浅谈mysql的查询过程
- sql 数据库检查_数据库检查点– SQL Server 2016中的增强功能
- autosar架构_(1)Testing-Autosar架构及模块描述
- 科蓝ichat泡分机器人 官网
- 力软敏捷开发框架7.0.6源码介绍
- 傲梅分区助手 linux,无损分区数据,调整分区大小软件:傲梅分区助手
- 大数据分析笔记 (4) -关联规则(Association Rules)
- 5G消息、聊天机器人和小程序
- Day621.Spring Test 常见错误 -Spring编程常见错误
- 基于Matlab的电磁场与波“电磁波的入射、反射、透射”仿真—(可实现波形入射反射过程的仿真)
- 租房软件需要的是简单易用
- Linux下通过已连上无线的真机使虚拟机可上网
- 手把手教你如何抵制法国货
- 循迹智能车红外模块的选取
- 计算机三级嵌入式工程师,怎样通过计算机三级嵌入式,如何成为嵌入式工程师——第一章嵌入式系统概论
- 用Python画红旗