吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 3090|回复: 1
收起左侧

[Java 转载] 数组的复制详解(Arrays.copy)

[复制链接]
NullPointer 发表于 2016-11-11 15:12
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
  • }

由输出结果可知:新复制出的数组的长度若小于原始数组,会自动补全等长度的默认值。



发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

nightghos 发表于 2016-11-11 19:00
虽然看不太懂但是会继续学习的!
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-15 13:53

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表