1.实例中用到的类(一定要实现Serializable接口)

class Person implements Serializable{private String Name;private List<Double> other;private int age;。。。。省略get set方法
}

2.克隆List的方法

    public static <T> List<T> deepCopy(List<T> src) {List<T> dest=null;try{ByteArrayOutputStream byteOut = new ByteArrayOutputStream();ObjectOutputStream out = new ObjectOutputStream(byteOut);out.writeObject(src);out.close();ByteArrayInputStream byteIn = new ByteArrayInputStream(byteOut.toByteArray());ObjectInputStream in = new ObjectInputStream(byteIn);dest = (List<T>) in.readObject();in.close();} catch (Exception e) {e.printStackTrace();}return dest;}

3.测试代码即输出结果

List<Double> list=Stream.of(23.6,28.7,21.2).collect(Collectors.toList());Person person=new Person();person.setName("jerry");person.setAge(18);person.setOther(list);List<Double> list1=Stream.of(45.2,78.6,12.3).collect(Collectors.toList());Person p1=new Person();p1.setName("tome");p1.setAge(20);p1.setOther(list1);List<Double> list2=Stream.of(99.1,27.7,21.2).collect(Collectors.toList());Person p2=new Person();p2.setName("Mike");p2.setAge(25);p2.setOther(list2);List<Double> list3=Stream.of(5.6,8.7,1.2).collect(Collectors.toList());Person p3=new Person();p3.setName("Susan");p3.setAge(30);p3.setOther(list3);List<Person> list_person=Stream.of(person,p1,p2,p3).collect(Collectors.toList());List<Person> listclone_p=deepCopy(list_person);listclone_p.get(0).setName("Alex");listclone_p.get(0).setAge(66);listclone_p.get(0).setOther(Arrays.asList(6.6,66.6,666.6));list_person.stream().forEach(e->System.out.printf("名字:%s,年龄:%d others1:%.2f \n",e.getName(),e.getAge(),e.getOther().get(0)));System.out.println("克隆之后的变化");listclone_p.stream().forEach(e->System.out.printf("名字:%s,年龄:%d others1:%.2f \n",e.getName(),e.getAge(),e.getOther().get(0)));
名字:jerry,年龄:18 others1:23.60
名字:tome,年龄:20 others1:45.20
名字:Mike,年龄:25 others1:99.10
名字:Susan,年龄:30 others1:5.60
克隆之后的变化
名字:Alex,年龄:66 others1:6.60
名字:tome,年龄:20 others1:45.20
名字:Mike,年龄:25 others1:99.10
名字:Susan,年龄:30 others1:5.60 

根据输出结果,可知拷贝的List修改不影响主List.即深拷贝。

java中List深拷贝的简单实例相关推荐

  1. Java中使用AMQ的简单实例

    好了,接上一篇,在对JMS的概念以及AMQ的下载安装有了一定认识之后,本篇就来学习一下AMQ在Java中的Hello World级使用(下文我将着重把重点写在注释里面,请注意代码注释部分!!!). 开 ...

  2. java数字编程提,java从字符串中提取数字的简单实例

    随便给你一个含有数字的字符串,比如: String s="eert343dfg56756dtry66fggg89dfgf"; 那我们怎么把其中的数字提取出来呢?大致有以下几种方法, ...

  3. php 在数组中,PHP 在数组中搜索给定的简单实例 array_search 函数

    array_search() PHP array_search() 函数用于在数组中搜索给定的值,如果成功则返回相应的键名,否则返回 FALSE . 语法: mixed array_search( m ...

  4. Java中利用socket实现简单的服务端与客户端的通信(中级)——实现任意双向通信

    本文计划采用socket实现客户端和服务端的任意双向通信,即客户端可以随时给服务端发消息,服务端也可以随时给客户端发消息,最终结果就是一个类似与QQ的聊天软件的功能. 以下代码可以直接拷贝到Eclip ...

  5. Java中利用socket实现简单的服务端与客户端的通信(基础级)

    在上一篇文章中,简单的介绍了java中入门级的socket编程,简单的实现了客户端像服务器端发送数据,服务器端将数据接收并显示在控制台,没有涉及多线程.上一篇文章的链接:Java中利用socket实现 ...

  6. java线程和内核线程的,Java中内核线程理论及实例详解

    1.概念 内核线程是直接由操作系统内核控制的,内核通过调度器来完成内核线程的调度并负责将其映射到处理器上执行.内核态下的线程执行速度理论上是最高的,但是用户不会直接操作内核线程,而是通过内核线程的接口 ...

  7. java中List Stream的简单使用

    java中List Stream的简单使用 一,api入门案例 实体类 public class Person {private int id;private String name;private ...

  8. java中List的用法和实例详解

    Java中List的用法和实例详解 List的用法 List包括List接口以及List接口的所有实现类.因为List接口实现了Collection接口,所以List接口拥有Collection接口提 ...

  9. java io流复制文件简单实例

    java io流复制文件简单实例 实例1: package com.io;import java.io.BufferedInputStream; import java.io.BufferedOutp ...

最新文章

  1. Linux非阻塞IO(八)使用epoll重新实现非阻塞的回射服务器
  2. 【Android 进程保活】Android 进程优先级 ( 前台进程 | 可见进程 | 服务进程 | 后台进程 | 空进程 )
  3. zookeeper收尾+dubbo前瞻
  4. 分析JDK中的Runtime的单例设计模式以及使用小例子
  5. 计算机基础知识整理大全_知识大全 | 物理选修35quot;波粒二象性quot;
  6. 1095.山脉数组中查找目标值
  7. 自动驾驶的Pipline -- 如何打造自动驾驶的数据闭环?(下)
  8. 结构梁配筋最牛插件_结构设计常识分享!结构抗震概念——强柱弱梁
  9. WPS制作三线表并去除虚线详解(毕业论文可用)
  10. 电脑分屏设置主屏_如何实现电脑屏幕分屏操作?
  11. pandas daraframe 写入读取excel文件,并简单计算
  12. 第二本书 第一章 Linux中的网络配置
  13. 智能对话系统原理和实践
  14. 重学c语言 新开导言
  15. 名企笔试:腾讯2016招聘笔试(微信红包)
  16. oracle导入dmp文件
  17. Android BMI程序设计
  18. 【备忘】es统计用户留存数据,公式都一样,语句和mysql区别很大
  19. 产品项目团队都有哪些角色概览
  20. Android Studio底部导航

热门文章

  1. CentOS7.2中NFS1.3 安装
  2. 办公电脑选购方案指南
  3. 目录树结构改变后刷新目录树
  4. win7关于IIS发布网站时候数据库的问题,xp也一样
  5. 以太坊去中心化_开发以太坊去中心化投票应用程序的指南
  6. ai css 线条粗细_如何训练AI将您的设计模型转换为HTML和CSS
  7. 1136 A Delayed Palindrome 需再做
  8. 1053 Path of Equal Weight
  9. 基于Numpy构建全连接前馈神经网络进行手写数字识别
  10. java中mypoiexception,java - 如何使用Poi获取Java中单元格的数据验证源? - 堆栈内存溢出...