java复制那些事
来源:互联网 发布:电机正反转plc编程 编辑:程序博客网 时间:2024/05/19 16:04
在开发中,复制是我们经常遇到的。
今天用arraylist来对比一下java中collections的几种复制:
- =
- clone()
- new arraylist(arraylist)
- Collections.copy
我们可以写一个这样的程序
public class COPY {static ArrayList<Integer> arrayList1;static ArrayList<Integer> arrayList2;static ArrayList<Integer> arrayList3;public static void main(String[] args) {arrayList1 = new ArrayList<>();arrayList2 = new ArrayList<>();for (int i = 0; i < 10; i++) {arrayList1.add(i);}//=arrayList2 = arrayList1;if (arrayList2 == arrayList1) {System.out.println("==指向对象");} //copyarrayList1 = new ArrayList<>();arrayList2 = new ArrayList<>();arrayList2 = (ArrayList<Integer>) arrayList1.clone();if (arrayList2 != arrayList1) {System.out.println("clone()创建新对象");}else {System.out.println("clone()指向对象");}//new Arraylist(old_arraylist)arrayList1 = new ArrayList<>();arrayList2 = new ArrayList<>();arrayList3 = arrayList2;for (int i = 0; i < 10; i++) {arrayList1.add(i);}arrayList2 = new ArrayList<>(arrayList1);if (arrayList2 == arrayList1) {System.out.println("new Arraylist(old_arraylist)指向对象");}else {System.out.println("new Arraylist(old_arraylist)不指向对象");}if (arrayList2 == arrayList3) {System.out.println("new Arraylist(old_arraylist)只复制数值");}else {System.out.println("new Arraylist(old_arraylist)创建新的对象");}arrayList1 = new ArrayList<>();arrayList2 = new ArrayList<>();arrayList3 = arrayList2;for (int i = 0; i < 10; i++) {arrayList1.add(i);}for (int i = 10; i < 20; i++) {arrayList2.add(i);}//注意,copy需要两个collection对象size相同Collections.copy(arrayList2, arrayList1);System.out.println(arrayList2);if (arrayList2 == arrayList1) {System.out.println("Collections.copy指向对象");}else {System.out.println("Collections.copy不指向对象");}if (arrayList3 == arrayList2) {System.out.println("Collections.copy只复制数值");}else {System.out.println("Collections.copy创建新的对象");}}}
他的输出结果是这样的:
==指向对象clone()创建新对象new Arraylist(old_arraylist)不指向对象new Arraylist(old_arraylist)创建新的对象[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]Collections.copy不指向对象Collections.copy只复制数值
0 0
- java复制那些事
- mongodb那些事--复制数据库和表
- java那些事
- JAVA那些事
- java多线程那些事
- Java Thread 那些事
- Java那些事:异常
- Java那些事:泛型
- JAVA XML 那些事
- java线程那些事
- mongodb那些事–复制数据库和表
- mongodb那些事–复制数据库和表
- Java 内存的那些事
- java.util.中的那些事
- JAVA代码规范那些事
- java垃圾回收那些事
- Java那些事之Log4j
- java 程序员上班那些事
- 10 导航控制器UINavigationController、导航条navigationBar、界面通信(属性传值、代理传值、单例传值)
- 屏幕适配 部分知识点总结,CSDN小冰原创
- java学习之内部类
- 走进K近邻
- 使用ssh时出现的异常总结
- java复制那些事
- 11 UITableView表视图
- 大话设计模式之代理模式
- 虚拟化三剑客专题-XenServer(中)
- 《C语言及程序设计初步》第四讲实践项目
- 为什么在linux的命令行中cd .. 能返回上层目录
- ubuntu14.04中安装opencv2.4.9
- 以mysql为数据源的Solr配置
- <LeetCode OJ> 303. Range Sum Query - Immutable