Java对象数组深拷贝
来源:互联网 发布:centos 7 unmount 编辑:程序博客网 时间:2024/05/22 15:08
Java对象数组深复制
1.今天做项目的时候遇到了一个java数组深拷贝的问题,当时直接使用了Object对象的clone方法,结果不管用。
ArrayList<Cell> cells = ArrayList<Cell>();ArrayList<Cell> init_cells = new ArrayList<Cell>();init_cells = (ArrayList<Cell>) cells.clone();执行以下的测试代码:System.out.println(init_cells.get(0).name);cells.get(0).name = "aaaaaaaa";System.out.println(init_cells.get(0).name);
结果输出的结果是
c1aaaaaaa
对象数组深拷贝失败
解决方法:
1.将需要深拷贝的对象实现Cloneable接口
2.对对象数组中的每一个对象进行深拷贝
public static void deep_clone(ArrayList<Cell> clone_cells){ for(Cell c : cells){ clone_cells.add((Cell) c.clone()); }}deep_clone(init_cells);System.out.println(init_cells.get(0).name);cells.get(0).name = "aaaaaaaa";System.out.println(init_cells.get(0).name);
在Cell.java中实现Cloneable接口
public class Cell implements Cloneable { public Object clone() { Cell o = null; try { o = (Cell) super.clone(); } catch (CloneNotSupportedException e) { e.printStackTrace(); } return o; }}
最后输出结果是:
c1c1
阅读全文
0 0
- Java对象数组深拷贝
- java拷贝数组(深拷贝)
- JAVA中复制数组、对象数组拷贝
- js数组、对象深拷贝
- Vue数组对象深拷贝
- Java深拷贝对象
- Java对象深拷贝
- java学习笔记-数组,对象的拷贝
- Java 数组 浅拷贝与深拷贝
- Java 数组 浅拷贝与深拷贝
- java对象的深拷贝浅拷贝
- java对象深拷贝问题
- JS中深拷贝数组、对象、对象数组方法
- JS中深拷贝数组、对象、对象数组方法
- JS中深拷贝数组、对象、对象数组方法
- JavaScript 数组对象深拷贝与浅拷贝
- JS数组和对象的深拷贝
- js数组及对象的深拷贝
- 浅学redis之Jedis
- 2212: [Poi2011]Tree Rotations/3702: 二叉树
- NKOJ-3712 数列<L特供版>
- Thinking in Java 笔记(2017/7/16)
- LinuxC简谈之数组、字符串与指针相关的常见错误与问题
- Java对象数组深拷贝
- 2017.07.16小组赛题目I
- JAVA“类”数组的创建与调用
- 初学python遇到的一个小问题
- 基本命令的用法
- Okabe and Boxes (栈 易)
- hdu 1325 Is It A Tree? (并查集)
- Java IO 概述
- PHP开发web程序的两种模式