简介

ArrayList是我们经常会用到的集合类,有时候我们需要拷贝一个ArrayList,今天向大家介绍拷贝ArrayList常用的四种方式。

使用构造函数

ArrayList有个构造函数,可以传入一个集合:

public ArrayList(Collection extends E> c) {

elementData = c.toArray();

if ((size = elementData.length) != 0) {

// c.toArray might (incorrectly) not return Object[] (see 6260652)

if (elementData.getClass() != Object[].class)

elementData = Arrays.copyOf(elementData, size, Object[].class);

} else {

// replace with empty array.

this.elementData = EMPTY_ELEMENTDATA;

}

}

上面的代码我们可以看出,底层实际上调用了Arrays.copyOf方法来对数组进行拷贝。这个拷贝调用了系统的native arraycopy方法,注意这里的拷贝是引用拷贝,而不是值的拷贝。这就意味着这如果拷贝之后对象的值发送了变化,源对象也会发生改变。

举个例子:

@Test

public void withConstructor(){

List stringList=new

java arraylist 复制_Copy ArrayList的四种方式相关推荐

  1. Java File.createNewFile 创建文件的四种方式小笔记

    本文为joshua317原创文章,转载请注明:转载自joshua317博客 Java File.createNewFile 创建文件的四种方式小笔记 - joshua317的博客 1.File(Str ...

  2. Java中数组转List的四种方式

    第一种方式(未必最佳):使用ArrayList.asList(strArray) 使用Arrays工具类Arrays.asList(strArray)方式,转换完成后,只能对List数组进行查改,不能 ...

  3. Java实现回文串的四种方式

    Java实现回文串的两种方式 1.什么是回文串? "回文串"是一个正读和反读都一样的字符串,如"level"或者"noon"等就是回文串. ...

  4. Java JFrame实现全屏的四种方式

    JFrame实现全屏的四种方式,方式一: import java.awt.*; import javax.swing.*; public class FullScreenDemo1 { public  ...

  5. 【Java并发编程】并发模拟的四种方式

    文章目录 并发模拟的四种方式 一.Postman 二.Apache Bench(AB) 三.并发模拟工具JMeter 四.代码模拟 并发模拟的四种方式 一.Postman Postman是一个款htt ...

  6. java类加入到spring容器_普通java类加入spring容器的四种方式

    今天在自己开发的工具类中使用了spring注入的方式调用了其他类,但是发生的报错,在整理了后今天小结一下. 首先简单介绍下spring容器,spring容器是整个spring框架的核心,通常我们说的s ...

  7. Java HashMap的遍历(常用的四种方式),及key,value规律

    HashMap的四种遍历方式 import java.util.HashMap; import java.util.Iterator; import java.util.Map; import jav ...

  8. java实现线程间通信的四种方式

    synchronized同步 public class MyObject { synchronized public void methodA() { //do something.... } syn ...

  9. java中遍历Map对象的四种方式

    import java.util.HashMap; import java.util.Map; /**  * 遍历Map对象 * @author xiaosongsong:  * @CreateTim ...

最新文章

  1. 【PP生产订单】入门介绍(九)
  2. nginx php fpm 连接数,哪个php5-fpm设置为高并发连接数nginx
  3. java launcher 下载_Java Launcher下载并安装
  4. 字体Times New Roman
  5. json string 格式_GO小知识之如何做JSON美化
  6. dubbo-go 中如何实现路由策略功能
  7. Grub2中文指南4---开机影像和主题
  8. Linux-firewalld-squid正向代理
  9. Chrome浏览器中比较实用的一些插件(文字复制、广告拦截、视频倍速、文献下载)
  10. 在网页右下角添加一个卡通动漫人物
  11. Beautiful Soup4.2文档
  12. python 音乐相册_‎App Store 上的“魔力相册-音乐相册、视频电子相册制作工具”...
  13. 百度网盘——下载限速问题解决方案(油猴(Tampermonkey)+百度网盘直链下载助手+IDM)
  14. NLP——李宏毅课程笔记
  15. 【AdaBoost算法】
  16. Anroid 7.0 Direct Boot研究
  17. 成都c语言编程培训机构,成都学c语言编程,成都学c语言编程去哪里,成都学c语言编程需要报培训班吗...
  18. IT计算机前后端相关专业——20个常用的学习教程及在线编程工具
  19. php自带加密解密函数
  20. 数据库-mysql(windows安装)

热门文章

  1. 【沁恒CH32学习】——RISC-V架构学习笔记
  2. Linux最简单基础
  3. 触摸按键芯片BS801B
  4. 东芝e-STUDIO2006/2306/2506/2307/2507 错误代码及故障排除参考
  5. java 表驱动_表驱动法编程(数据驱动)
  6. DirectX12(D3D12)基础教程(外篇一)——编译Assimp
  7. 计算机等级考试(三级网络)基本概念与名词解释
  8. 单点登录CAS-03:cas配置01-配置文件类型
  9. 成都宁源鑫成:拼多多商家如何做好品牌策划?
  10. 学习笔记1--自动驾驶环境感知概述