如何巧妙的使用ArrayList的Clone方法
一、ArrayList的Clone方法的源码
- 返回一个Object对象,所以在使用此方法的时候要强制转换。
- ArrayList的本质是维护了一个Object的数组,所以克隆也是通过数组的复制实现的,属于浅复制。
public Object clone() {
try {
@SuppressWarnings("unchecked")
ArrayList<E> v = (ArrayList<E>) super.clone();
v.elementData = Arrays.copyOf(elementData, size);
v.modCount = 0;
return v;
} catch (CloneNotSupportedException e) {
// this shouldn't happen, since we are Cloneable
throw new InternalError();
}
}
二、ArrayList的Clone浅复制的巧妙使用
当你需要使用remove方法移除掉集合中的对象,而非要修改集合中的对象的时候,可以选择使用。
//添加两个元素
Student stJack=new Student("Jack", 13);
Student stTom=new Student("Tom", 15);
list.add(stJack);
list.add(stTom);
//克隆
ArrayList<Student> listCopy=(ArrayList<Student>) list.clone();
//移除且不修改
listCopy.remove(1);
System.out.println(list);
System.out.println(listCopy);
aaarticlea/png;base64,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" alt="" />
代码解读:
remove之前的:
aaarticlea/png;base64,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" alt="" />
remove之后的:
aaarticlea/png;base64,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" alt="" />
所以移除且不修改集合中的元素,只是在List内部的数组中移除了指向元素的地址,可以放心的使用clone。
三、实现List的深复制
如果你想要修改克隆后的集合,那么克隆前的也会被修改。那么就需要使用深复制。通过实现对象类的clone方法。
public class testClone {
public static void main(String[] args) {
ArrayList<Student> list=new ArrayList<Student>();
//添加两个元素
Student stJack=new Student("Jack", 13);
Student stTom=new Student("Tom", 15);
list.add(stJack);
list.add(stTom);
//深克隆
ArrayList<Student> listCopy=new ArrayList<Student>();
for (Student student : list) {
listCopy.add(student.clone());
}
//移除且不修改
listCopy.get(0).setAge(20);
System.out.println(list);
System.out.println(listCopy);
}
} class Student{
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public Student(String name, int age) {
super();
this.name = name;
this.age = age;
}
@Override
public String toString() {
return "Student [name=" + name + ", age=" + age + "]";
}
@Override
protected Student clone(){
Student stuent = new Student(this.name,this.age);
return stuent;
} }
如何巧妙的使用ArrayList的Clone方法的更多相关文章
- Cloneable接口和Object的clone()方法
为什么要克隆 为什么要使用克隆,这其实反映的是一个很现实的问题,假如我们有一个对象: public class SimpleObject implements Cloneable { private ...
- java开发——Cloneable接口、clone()方法和深浅拷贝
1.实现Cloneable接口表明该类的对象是允许克隆的. 2.允许克隆的意思是:可以调用clone()方法. 3.深拷贝还是浅拷贝,取决于如何重写Object的clone()方法. 4.原对象和克隆 ...
- Object类clone方法的自我理解
网上搜帖: clone()是java.lang.Object类的protected方法,实现clone方法: 1)类自身需要实现Cloneable接口 2)需重写clone()方法,最好设置修饰符mo ...
- ArrayList的使用方法(转载)
转载自: http://i.yesky.com/bbs/jsp/view.jsp?articleID=889992&forumID=150 1.什么是ArrayList ArrayLis ...
- (二十三)原型模式详解(clone方法源码的简单剖析)
作者:zuoxiaolong8810(左潇龙),转载请注明出处,特别说明:本博文来自博主原博客,为保证新博客中博文的完整性,特复制到此留存,如需转载请注明新博客地址即可. 原型模式算是JAVA中最简单 ...
- ArrayList 排序Sort()方法扩展
1.sort() sort可以直接对默认继承 IComparable接口的类进行排序,如:int.string.... ArrayList arrayList = new ArrayList(); , ...
- jquery中的clone()方法使用
clone([Even[,deepEven]]) 描述: 克隆匹配的DOM元素并且选中这些克隆的副本. 在想把DOM文档中元素的副本添加到其他位置时这个函数非常有用. 1:一个布尔值(true 或者 ...
- 详解Java中的clone方法:原型模式
转:http://developer.51cto.com/art/201506/478985.htm clone顾名思义就是复制, 在Java语言中, clone方法被对象调用,所以会复制对象.所谓的 ...
- C++/C#中堆栈、对象内存模型、深浅拷贝、Array.Clone方法
转载自:http://blog.csdn.net/jarvischu/article/details/6425534 目录 1. C++/C#中对象内存模型................. ...
随机推荐
- 微信小程序上手项目
小程序刚发布的时候何其风光,可能大家习惯性的对微信给予了过高的期待,加上一开始小程序的功能确实很孱弱,扫了很多人的兴. 经过最开始的热闹和喧嚣,如今微信小程序热度大减,但随着不断迭代,如今小程序的功能 ...
- sizeof和strlen()区别及用法
//sizeof是以字节为单位计算变量或类型所占内存大小,它是属于C语言运算符系列:而strlen()是一个函数,是计算字符串长度(也是以字节为单位,但略有区别):比如: char array[] = ...
- 简单用数组模拟顺序栈(c++)
**栈是一种操作受限制的线性表,太多官方的话我也不说了,我们都知道栈元素是先进后出的,它有两种存储结构,分别是顺序存储结构和链式存储结构. **今天我先记一下顺序存储结构,后面我会加上链式存储结构的. ...
- Hbase技术笔记
一.Hbase介绍 二.Hbase的Region介绍 三.Hbase的写逻辑介绍 四.Hbase的故障恢复 五.Hbase的拆分和合并 如下ppt所示: 下面就来针对各个部分的内容来进行详细的介绍: ...
- day21-多并发编程基础(二)
今日要整理的内容有 1. 操作系统中线程理论 2.python中的GIL锁 3.线程在python中的使用 开始今日份整理 1. 操作系统中线程理论 1.1 线程引入背景 之前我们已经了解了操作系统中 ...
- Django-CRM项目学习(四)-stark的分页器与搜索框
1.分页器 分页器相关知识点,请查看以下链接 https://www.cnblogs.com/gbq-dog/p/10724859.html 2.代码归类 归类前代码 header_list = [] ...
- DeeplabV3+ 命令行不显示miou的解决
首先看到训练时会在命令行里输出 loss 和 total loss,那是怎么做到的呢,通过分析 train.py 源码,看到如下代码 total_loss = tf.cond( should_log, ...
- git完全cli指南之详细思维导图整理分享
一直以来都觉得 在开发过程中 能用命令行的还是用命令行 能用快捷键的就要快捷键 前期可能要点学习成本 但是熟练后带来的好处还是非常可观的 所以一直坚持使用命令行的方式来使用git 基本上每个操作都能心 ...
- OSGI target环境配置过程
新建一个通用工程 新建target环境 新建存放依赖包的目录 新建server目录,用于存放server.target对应的依赖包. 在server目录下,新建plugins目录 新建目录之后的, ...
- Python的dnspython库使用指南
因为平时在测试DNS的时候有些操作手动完成不方便,所以需要用到脚本,而在Python里dnspython这个用于DNS操作的库十分强大,但是无奈网上大部分资料只列举了少部分的用法,所以记录一下我平时使 ...