java arraylist 复制_Copy ArrayList的四种方式
简介
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的四种方式相关推荐
- Java File.createNewFile 创建文件的四种方式小笔记
本文为joshua317原创文章,转载请注明:转载自joshua317博客 Java File.createNewFile 创建文件的四种方式小笔记 - joshua317的博客 1.File(Str ...
- Java中数组转List的四种方式
第一种方式(未必最佳):使用ArrayList.asList(strArray) 使用Arrays工具类Arrays.asList(strArray)方式,转换完成后,只能对List数组进行查改,不能 ...
- Java实现回文串的四种方式
Java实现回文串的两种方式 1.什么是回文串? "回文串"是一个正读和反读都一样的字符串,如"level"或者"noon"等就是回文串. ...
- Java JFrame实现全屏的四种方式
JFrame实现全屏的四种方式,方式一: import java.awt.*; import javax.swing.*; public class FullScreenDemo1 { public ...
- 【Java并发编程】并发模拟的四种方式
文章目录 并发模拟的四种方式 一.Postman 二.Apache Bench(AB) 三.并发模拟工具JMeter 四.代码模拟 并发模拟的四种方式 一.Postman Postman是一个款htt ...
- java类加入到spring容器_普通java类加入spring容器的四种方式
今天在自己开发的工具类中使用了spring注入的方式调用了其他类,但是发生的报错,在整理了后今天小结一下. 首先简单介绍下spring容器,spring容器是整个spring框架的核心,通常我们说的s ...
- Java HashMap的遍历(常用的四种方式),及key,value规律
HashMap的四种遍历方式 import java.util.HashMap; import java.util.Iterator; import java.util.Map; import jav ...
- java实现线程间通信的四种方式
synchronized同步 public class MyObject { synchronized public void methodA() { //do something.... } syn ...
- java中遍历Map对象的四种方式
import java.util.HashMap; import java.util.Map; /** * 遍历Map对象 * @author xiaosongsong: * @CreateTim ...
最新文章
- 【PP生产订单】入门介绍(九)
- nginx php fpm 连接数,哪个php5-fpm设置为高并发连接数nginx
- java launcher 下载_Java Launcher下载并安装
- 字体Times New Roman
- json string 格式_GO小知识之如何做JSON美化
- dubbo-go 中如何实现路由策略功能
- Grub2中文指南4---开机影像和主题
- Linux-firewalld-squid正向代理
- Chrome浏览器中比较实用的一些插件(文字复制、广告拦截、视频倍速、文献下载)
- 在网页右下角添加一个卡通动漫人物
- Beautiful Soup4.2文档
- python 音乐相册_App Store 上的“魔力相册-音乐相册、视频电子相册制作工具”...
- 百度网盘——下载限速问题解决方案(油猴(Tampermonkey)+百度网盘直链下载助手+IDM)
- NLP——李宏毅课程笔记
- 【AdaBoost算法】
- Anroid 7.0 Direct Boot研究
- 成都c语言编程培训机构,成都学c语言编程,成都学c语言编程去哪里,成都学c语言编程需要报培训班吗...
- IT计算机前后端相关专业——20个常用的学习教程及在线编程工具
- php自带加密解密函数
- 数据库-mysql(windows安装)