警惕数组的浅拷贝
来源:互联网 发布:java程序下载 编辑:程序博客网 时间:2024/05/28 20:18
警惕数组的浅拷贝
public class Client{ public static void main(String[] args){ //气球的数量 int ballonNum = 7; //第一个箱子 Ballon[] box1 = new Ballon[ballonNum]; //注:自定义对象数组,需要对数组中的每个对象元素独立进行创建,然后才可以对 其赋值、引用等操作,如果没有单独对每个对象元素创建,会导致空指针异常 //初始化第一个箱子 for(int i = 0; i < ballonNum; i++){ box1[i] = new Ballon(Color.values()[i],i); } //第二个箱子的小球是拷贝的第一个箱子里的 Ballon[] box2 = Arrays.copyOf(box1,box1.length); //修改最后一个气球的颜色 box2[6].setColor(Color.Blue); //打印出第一个箱子中的气球颜色 for(Ballon b:box1){ System.out.println(b); } } } //气球的颜色 enum Color{ Red,Orange,Yellow,Green,Indigo,Blue,Violet; } //气球 class Ballon{ //编号 private int id; //颜色 private Color color; public int getId() { return id; } public void setId(int id) { this.id = id; } public Color getColor() { return color; } public void setColor(Color color) { this.color = color; } public Ballon(Color _color,int _id){ color = _color; id = _id; } /*id、color的getter/setter方法省略*/ //apache-common包下的ToStringBuilder重写toString方法 public String toString(){ return new ToStringBuilder(this).append("编号",id).append("颜色",color).toString(); } }
box1输出结果:
*Ballon [id=0, color=Red]
Ballon [id=1, color=orange]
Ballon [id=2, color=yellow]
Ballon [id=3, color=green]
Ballon [id=4, color=indigo]
Ballon [id=5, color=blue]
Ballon [id=6, color=blue]*
初始化box1(七个小球其中颜色),然后将box1使用copyof()拷贝并改变box中最后一个小球的颜色,box1也发生了改变
在我们处理对象时可能会使用到List.toArray方法将集合转换成数组,一定要注意浅拷贝.
阅读全文
0 0
- 警惕数组的浅拷贝
- 警惕数组的浅拷贝
- 提高你的Java代码质量吧:警惕数组的浅拷贝
- 提高你的Java代码质量吧:警惕数组的浅拷贝
- 深度拷贝、浅度拷贝、数组的拷贝
- 关于数组的浅拷贝与深拷贝
- 关于数组的复制问题------浅拷贝,深拷贝
- <Java>Java数组的深拷贝与浅拷贝
- 数组NSArray的浅拷贝与深拷贝
- iOS开发-数组的深拷贝浅拷贝注意点
- 另类的数组拷贝
- Java 数组 的 拷贝
- Java 数组的拷贝
- 数组的拷贝
- flex数组的拷贝
- 拷贝数组的数据
- cuda数组的拷贝
- 数组的拷贝操作
- Unity 3D: Scroll View 刷新
- 关于反射的一些理解
- Python中内置数据类型list,tuple,dict,set的区别和用法
- 《第一行代码》自学笔记-活动的基本用法
- java file文件类操作使用方法大全
- 警惕数组的浅拷贝
- 源代码修改错,导致ecshop后台管理员权限显示空白
- Android studio的快捷键
- zzuli1116
- POJ3295
- 调用.so 文件时报错has text relocations
- Hadoop学习笔记之--Hadoop的安装
- 大型网站系统架构演化之路
- <br> 标签用法