在开发过程中,一直以为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进行深度复制相关推荐

  1. 利用序列化与反序列化对Java对象进行深度复制

    来源  http://lhg803.iteye.com/blog/407270 JDK的API中的java.lang.Object和Cloneable接口要完美实现深度clone时,都需要针对具体的类 ...

  2. java 对象深度复制_Java深度复制– Java复制对象

    java 对象深度复制 Today we will look into Java deep copy. Sometimes we want to get a copy of an Object, bu ...

  3. JAVA 对象深度复制实现

    JAVA 有两种深度复制实现方式,分别是实现Cloneabel接口,并在接口函数中为每个属性调用Cloneable,也可以通过序列化的方式来实现. package JAVAImprove;import ...

  4. java深度复制 xjh 亲测 两种方法

    第一种:http://blog.chinaunix.net/uid-20577907-id-3132181.html   (亲测有用) java 深度复制 2012-03-13 20:25:21 分类 ...

  5. java map 的复制,Java Map的深度复制和浅复制

    来看一段代码,猜一下运行结果! //给 list 放入 2个map对象 Listlist = new ArrayList(); Map map1 = new HashMap(); map1.put(& ...

  6. Java Map深度复制

    Map深度复制 目录 Map深度复制 1,new HashMap<>(Object); 2,Put All; 3,串行化复制; 总结: 如何对Map类型的数据进行深度复制,有几种方式呢? ...

  7. Java进阶之对象克隆(复制)

    转载自   Java进阶之对象克隆(复制) 假如说你想复制一个简单变量.很简单: int apples = 5; int pears = apples; 不仅仅是int类型,其它七种原始数据类型(bo ...

  8. 对象的深度复制和浅复制 (深度拷贝和浅拷贝)

    对象的深度复制和浅复制 (深度拷贝和浅拷贝) 作者:邓家海 时间:2018年2月11日 21:46:22 我们在实际的开发项目里面为了使得开发更加的便捷和方便,总会不经意的使用一些第三方的持久化框架( ...

  9. JS如何深度复制对象和数组,避免指针变量引用修改值

    //自定义深度复制对象or数组的递归方法---------------------------------------- let copyObjOrArr = o => {let isArray ...

  10. 深度复制_Python 列表切片陷阱:引用、复制与深复制

    Python 列表的切片和赋值操作很基础,之前也遇到过一些坑,以为自己很懂了.但今天刷 Codewars 时发现了一个更大的坑,故在此记录. Python 列表赋值:复制"值"还是 ...

最新文章

  1. Android运行时识别API版本
  2. 开源团队协作 TMS 2.4.0 版本发布
  3. java.sql.SQLSyntaxErrorException: Unknown database ‘spring‘
  4. g++默认参数_C ++默认参数| 查找输出程序| 套装1
  5. js 递归查询所有的叶子结点_浅谈mysql的查询过程
  6. sql 数据库检查_数据库检查点– SQL Server 2016中的增强功能
  7. autosar架构_(1)Testing-Autosar架构及模块描述
  8. 科蓝ichat泡分机器人 官网
  9. 力软敏捷开发框架7.0.6源码介绍
  10. 傲梅分区助手 linux,无损分区数据,调整分区大小软件:傲梅分区助手
  11. 大数据分析笔记 (4) -关联规则(Association Rules)
  12. 5G消息、聊天机器人和小程序
  13. Day621.Spring Test 常见错误 -Spring编程常见错误
  14. 基于Matlab的电磁场与波“电磁波的入射、反射、透射”仿真—(可实现波形入射反射过程的仿真)
  15. 租房软件需要的是简单易用
  16. Linux下通过已连上无线的真机使虚拟机可上网
  17. 手把手教你如何抵制法国货
  18. 循迹智能车红外模块的选取
  19. 计算机三级嵌入式工程师,怎样通过计算机三级嵌入式,如何成为嵌入式工程师——第一章嵌入式系统概论
  20. 用Python画红旗

热门文章

  1. 常见荧光染料修饰多种基团及其激发和 发射波长数据一览数据
  2. CSAPP 存储器山数据的测量以及绘制,Cache lab part A:Cache simulator
  3. 基于matlab的眼部疲劳检测
  4. Python OpenCV真香——去除照片白色背景
  5. 淘宝卖家如何有效控制直通车展现?
  6. python——spilt和strip用法
  7. FPGA--OV7725摄像头采集与VGA显示实验--1--OV7725使用与驱动协议
  8. TDB和SPARQL
  9. kuangbin带你飞专题
  10. workman 日志_Workman手册笔记一