好友
阅读权限10
听众
最后登录1970-1-1
|
1:、含义:数组的复制,不会影响原有数组的数据结构和数据,复制出一个全新的数组出来。
2、语法:
Arrays.copyOf(array, size);
解释:array:老数组;size:新数组的长度,若想完全与老数组(array)的数据一致,则size可以为array.length;若size设置的值比老数组的长度小,则自动截取老数组到固定长度,若值比老数组长度大,则自动补全默认值。
3、实例:
Demo1:以strArray为起始数组复制出resultArray数组(size与原数组等长)
- String[] strArray = {"1", "2", "3"};
- String[] resultArray = {};
- resultArray = Arrays.copyOf(strArray, strArray.length);
- //原数组的数据
- for(int i = 0; i < strArray.length; i ++) {
- System.out.print(strArray[i + " "); //1 2 3
- }
- System.out.println();//换行,输出格式更易看
- //新数组的数据
- for(int i = 0; i < resultArray.length; i ++) {
- System.out.print(resultArray[i + " "); //1 2 3
- }
- System.out.println();//换行,输出格式更易看
- //新数组改变数据
- resultArray[0 = "4";
- //遍历原数组,发现新数组改变数据并不会影响原数组
- for(int i = 0; i < strArray.length; i ++) {
- System.out.print(strArray[i + " "); //1 2 3
- }
- System.out.println();//换行,输出格式更易看
- //遍历原数组,新数组数据已被改变
- for(int i = 0; i < resultArray.length; i ++) {
- System.out.print(resultArray[i + " "); //4 2 3
- }
由输出结果可知:新复制出的数组并不会影响原来的数组的数据。
Demo2:以strArray为起始数组复制出resultArray数组(size小于原数组长度)
- String[] strArray = {"1", "2", "3"};
- String[] resultArray = {};
- resultArray = Arrays.copyOf(strArray, 2);
- //原数组的数据
- for(int i = 0; i < strArray.length; i ++) {
- System.out.print(strArray[i + " "); //1 2 3
- }
- System.out.println();//换行,输出格式更易看
- //新数组的数据
- for(int i = 0; i < resultArray.length; i ++) {
- System.out.print(resultArray[i + " "); //1 2
- }
由输出结果可知:新复制出的数组的长度若小于原始数组,会自动截取原数组的size长度。
Demo3:以strArray为起始数组复制出resultArray数组(size大于原数组长度)
- String[] strArray = {"1", "2", "3"};
- String[] resultArray = {};
- resultArray = Arrays.copyOf(strArray, 4);
- //原数组的数据
- for(int i = 0; i < strArray.length; i ++) {
- System.out.print(strArray[i + " "); //1 2 3
- }
- System.out.println();//换行,输出格式更易看
- //新数组的数据
- for(int i = 0; i < resultArray.length; i ++) {
- System.out.print(resultArray[i + " "); //1 2 3 null
- }
由输出结果可知:新复制出的数组的长度若小于原始数组,会自动补全等长度的默认值。
|
|
发帖前要善用【论坛搜索】功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。 |
|
|
|
|