正确方式1:

List<Object> target = new ArrayList<>(Arrays.asList(new Object[source.size()]));
Collections.copy(target,source);

正确方式2:

List<String> target = new ArrayList<>(source);

正确方式3:

List<String> target = new ArrayList<>();
target.addAll(source);

以上三种复制方式,都会开辟新的内存空间,新集合的操作不会影响到原有集合

错误方式1:





从源码和debug可以看出,在copy方法执行前,会做两个集合大小的判断,此时target为0,因为ArrayList(int initialCapacity) 这种创建方式,只是指定初始容量,并没有给集合开辟新空间。

错误方式2:

直接把source赋值给target

这种方式也不会开辟新的空间,只是多一个引用,target 和 source指向同一个内存空间,那么对任何一个集合做操作,都会联动改变。

注意:有些同学不要理解错误,以上是list的复制方式,仅仅是list开辟新空间,属于浅拷贝,list中的对象仍然是引用方式

深拷贝方式

采用序列号和反序列化方式

JSON.parseArray(JSON.toJSONString(result, SerializerFeature.DisableCircularReferenceDetect),User.class);

List集合的复制方式相关推荐

  1. mysql file-pos_mysql-5.7 调整mysql的复制方式由master_log_file+master_log_pos 到gtid 详解

    一.祖传的master_log_file + master_log_pos的复制方式面临的问题: 在很久以前 那个时候我还没有出道,mysql就已经就有复制这个功能了.如果要告诉slave库从mast ...

  2. java 多种类型文件复制_java多种文件复制方式以及效率比较

    1.背景 java复制文件的方式其实有很多种,可以分为 传统的字节流读写复制FileInputStream,FileOutputStream,BufferedInputStream,BufferedO ...

  3. java复制文件_java多种文件复制方式以及效率比较

    1.背景 java复制文件的方式其实有很多种,可以分为 - 传统的字节流读写复制FileInputStream,FileOutputStream,BufferedInputStream,Buffere ...

  4. 原生 遍历_迭代器模式统一集合的遍历方式

    今天来介绍迭代器模式(Iterator Design Pattern),它还有另一个名字,叫作游标模式(Cursor Design Pattern). 1,遍历集合元素 现在的高级语言(比如 C++, ...

  5. python集合的定义方式_11-Python基础知识学习—集合类型

    定义集合 集合和 list.tuple.dict 一样都可以存放多个值,但是集合主要用于: 去重和关系运算 .在{}内用逗号分隔开多个元素就是集合,它具备以下三个特点: 每个元素必须是不可变类型 集合 ...

  6. 【Java】List集合去重的方式

    List集合去重的方式 方式一:利用TreeSet集合特性排序+去重(有序) 方式二:利用HashSet的特性去重(无序) 方式三:利用LinkedHashSet去重(有序) 方式四:迭代器去重(无序 ...

  7. mysql复制多行_mysql中的复制方式总结(半同步复制,并行复制,多源复制)

    一.MySQL主从复制(异步复制,默认) Mysql主从复制原理 Mysql的复制原理大致如下: 1.主库记录binlog日志 在每次准备提交事务完成数据更新前,主库将数据更新的事件记录到二进制日志b ...

  8. STM32F103VET6利用片内FLASH虚拟U盘,使用文件复制方式实现IAP

    在原子论坛偶尔搜到一篇 利用STM32片内FLASH虚拟U盘,使用文件复制方式实现IAP的帖子http://www.openedv.com/forum.php?mod=viewthread&t ...

  9. 【java】Map集合的遍历方式有几种?

    因为下一个博客想写Hashtable集合下的一个子类Properties集合,但是Map集合的遍历方式又有点遗忘了........... 下面通过API来复习一下: 文章目录 1. Map集合的第一种 ...

最新文章

  1. java 反射调用静态方法
  2. 解析IBM TSM6.0版本特色功能与技术优势
  3. 什么是 DDoS 攻击?
  4. textbox回车事件中拿不到text的处理办法(wpf)
  5. Class Activation Mapping(CAM)类激活映射
  6. 魔改部署自己专属的合成大西瓜(一:运行篇)
  7. 全国各省二氧化碳排放量统计数据(1995-2016年)
  8. RocketMQ存储篇——整体结构以及MappedFile讲解
  9. 李一男旗下自游家汽车无法交付车辆 旅程还没开始就将结束
  10. 一个查英语缩写的网站
  11. 【论文翻译】Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks
  12. 链家爬取深圳租房代码(java)
  13. 南京邮电大学网络攻防训练平台逆向第三题PY交易
  14. 三菱FX系列PLC备份电池电压低报警的处理方法
  15. Google 出现崩溃 错误代码:STATUS_BREAKPOINT
  16. PDF怎么添加页码?PDF添加页码的方法
  17. viewport和@media查询
  18. c语言贪吃蛇大作业报告,C语言贪吃蛇实验报告
  19. win2000:ntoskrnl.exe 文件丢失解决一例
  20. Docker未授权访问漏洞

热门文章

  1. 认识EMC Unity 存储设备的控制器SP
  2. Python爬虫脚本,初级入门爬取英雄联盟所有皮肤(源码)
  3. 南卡与vivo蓝牙耳机哪个好?南卡小音舱与vivo TWS 2对比评测
  4. 微信小程序 点击生成朋友圈分享图
  5. 手机的画面怎么投屏到电视上,试试这些方法
  6. android 拍 上传视频无法播放,【报Bug】input type=file时无法使用相机拍摄视频
  7. 视觉工程师必须知道的工业相机50问,绝对干货!(转载)
  8. KT vs SKT [20160816]
  9. GPUImage原理
  10. computed 接收参数