Java核心技术--数组拷贝
2017-11-09 16:49
232 查看
在Java中,允许将一个数组变量拷贝给另一个数组变量。但是要注意,拷贝的是数组的引用,而不是直接把数据拷贝,也就是拷贝之后,两个变量将会引用同一个数组。
int[] array1 = array2;
array1[3] = 15;通过上面语句赋值之后,array2[5]的值也是15.
下面是数组拷贝的示例图:
另一种情况就是,如果想要把一个数组的所有值拷贝到另一个新的数组中,就要使用Arrays类的copyOf方法完成。
int[] array1 = Arrays.copyOf(array2, array2.length);方法copyOf的第二个参数array2.length是新数组的长度,这个方法通常用来增加数组的大小:
array = Arrays.copyOf(array, array.length);如果数组元素是数值型,那么多余的元素会被赋值为0,;如果是boolean类型,赋值为false;相反的,如果数组的长度小于原始数组的长度,只拷贝最前面的数组元素。
注意:Java数组和C++数组在堆栈上有很大的不同,基本和分配在堆上的数组指针一样,例如:
int[] a = new int[100];//java不同于
int a[100];//c++等同于
int* a = new int[100];Java中的[]被预定义为检查数组边界,并且没有指针运算,所以不能通过a加1等到数组的下一个元素。
int[] array1 = array2;
array1[3] = 15;通过上面语句赋值之后,array2[5]的值也是15.
下面是数组拷贝的示例图:
另一种情况就是,如果想要把一个数组的所有值拷贝到另一个新的数组中,就要使用Arrays类的copyOf方法完成。
int[] array1 = Arrays.copyOf(array2, array2.length);方法copyOf的第二个参数array2.length是新数组的长度,这个方法通常用来增加数组的大小:
array = Arrays.copyOf(array, array.length);如果数组元素是数值型,那么多余的元素会被赋值为0,;如果是boolean类型,赋值为false;相反的,如果数组的长度小于原始数组的长度,只拷贝最前面的数组元素。
注意:Java数组和C++数组在堆栈上有很大的不同,基本和分配在堆上的数组指针一样,例如:
int[] a = new int[100];//java不同于
int a[100];//c++等同于
int* a = new int[100];Java中的[]被预定义为检查数组边界,并且没有指针运算,所以不能通过a加1等到数组的下一个元素。
相关文章推荐
- JAVA基础【5.4】《Java核心技术1》继承-泛型数组列表
- java 核心内容()数组拷贝的两种方法
- Java核心技术--数组排序
- Java核心技术--数组初始化和匿名数组
- Java核心技术 卷一 笔记三 大数值及数组
- JAVA 数组,(java核心技术 卷1)
- java 核心技术 第三章栗子 数组运用
- JAVA基础【3.10】《Java核心技术1》Java的基本程序设计结构-数组
- Java核心技术--数组简介
- Java核心技术很优美的代码3 实现数组的动态分配
- Java核心技术之字符串,数组,数组工具类
- java核心技术 要点笔记1
- 高手Java核心技术学习笔记
- 【Java核心技术】到底什么是JavaBean?
- java核心技术笔记 对象与类
- JAVA基础【5.1】《Java核心技术1》继承-继承
- java 核心技术 卷1 第四章 CalendarTest
- java核心技术笔记 事件处理
- 【Java核心技术 I】第三章 Java的基本程序设计结构
- java 核心技术 卷1 第三章 常用方法