复制数组(
来源:互联网 发布:windows自带c编译器 编辑:程序博客网 时间:2024/05/18 14:12
复制数组(图)
5.4.3 复制数组
因为数组是引用类型,所以将一个数组变量赋予另一个数组变量,就会得到两个指向同一数组的变量。而复制数组,会使数组实现ICloneable接口。这个接口定义的Clone()方法会创建数组的浅副本。
如果数组的元素是值类型,就会复制所有的值,如图5-5所示:
int intArray1 = {1, 2};
int intArray2 = (int[])intArray1.Clone();
图 5-5
如果数组包含引用类型,则不复制元素,而只复制引用。图5-6 显示了变量beatles和beatlesClone,其中beatlesClone是通过在beatles上调用Clone()方法来创建的。beatles和beatlesClone引用的Person对象是相同的。如果修改beatlesClone中一个元素的属性,就会改变beatles中的对应对象。
Person[] beatles = {
new Person("John", "Lennon"),
new Person("Paul", "McCartney"),
};
Person[] beatlesClone = (Person[])beatles.Clone();
图 5-6
除了使用Clone()方法之外,还可以使用Array.Copy()方法创建浅副本。但Clone()方法和Copy()方法有一个重要区别:Clone()方法会创建一个新数组,而Copy()方法只是传送了阶数相同、有足够元素空间的已有数组。
提示:
如果需要包含引用类型的数组的深副本,就必须迭代数组,创建新对象。
- 复制数组(
- 数组复制
- 数组复制
- 复制数组
- 复制数组
- 复制数组
- 数组复制
- 复制数组
- 数组复制
- 数组复制
- 数组复制
- 数组复制
- 数组复制
- 复制数组
- 数组复制
- 数组复制
- 数组复制
- 复制数组
- FTP传输模式binary和ASCII的区别
- 围棋360度谭
- 用Jquery和JTemplates来处理JSON数据
- 永不过时的Lisp
- 中文汉字编码技术的探索、突破与拓展
- 复制数组(
- 手把手教你使用Flex 3——《Flex 3程序设计》
- 利用FFmpeg将视频文件生成bmp图像帧(解决反转问题)
- cmd下重启iis命令
- Oracle10.2限制(取自官方文档)
- 找不到可安装的ISAM 错误的解决方案!
- 生成子系统树的方法:
- Java动态代理
- 随机验证码