数组的复制常用方法

数组的复制常用方法

数组不可以直接复制,如:

int []arr= {1,2,3};
int []arr2=arr;//不可以

正确方法

数组复制方法一:

通过遍历原数组,遍历的过程中,对原数组进行取值,
然后在赋值给新的数组。
注意:

  1. 这种复制方法要求,目标数组的长度,不能小于原数组的长度,
    否则复制的过程中会出现,ArrayIndexOutOfBoundsException(数组下标越界异常)
  2. 如果目标数组的长度比原数组的长度长,则复制完成后,复制出来的数组中,
    没有复制过去的元素值,为默认值。

代码如下:

//原数组
int[] array = {1,2,3,4,5};
//目标数组
int[] array1 = new int[array.length];
//开始复制
for(int i = 0; i < array.length; i++) {
    array1[i] = array[i];
}
//对目标数组进行遍历,查看复制结果
for (int i = 0; i < array1.length; i++) {
    System.out.println(array1[i]);
}
数组复制方法二

Arrays.copyOf(original, newLength);
coriginal:原数组
newLength:新数组的长度
注意:1. 新数组的长度
  如果写的比原数组的长度小,那就只复制到哪里
  如果写的比原数组的长度长,没复制的地方,会是默认值。
   2. 这种复制数组的方法,复制的时候,必须用一个数组在前面接收复制的结果。

代码如下:

//原数组
int[] arr = {1,2,3,4,5};
//将原数组复制到目标数组中
int[] arr1 = Arrays.copyOf(arr,arr.length);
         
//遍历目标数组查看结果
for (int i = 0; i < arr1.length; i++) {
    System.out.println(arr1[i]);
}
 
数组复制方法三

System.arraycopy(src,srcPos,dest,destPos,length);
src:原数组
srcPos:从原数组的起始位置+
dest:目标数组
destPos:目标数组开始的的位置
length:要Copy的数组长度
注意:
这种复制数组的方法,复制的时候,不需要用数组在前面做接收。
当这个语句执行完毕后,原数组里的元素,就已经按照要求,复制到了目标数组中了。

代码如下:

//原数组
int[] num = {0,1,2,3,4};
//目标数组
int[] num1 = new int[num.length];
         
// 复制数组解析: (原数组,从原数组的起始位置,目标数组,目标数组的起始位置,要复制的数组长度)     
// System.arraycopy(src,   srcPos,          dest,   destPos,         length);
 
//执行复制
System.arraycopy(num, 0, num1, 0, arr.length);
         
//遍历目标数组查看结果
for (int i = 0; i < num1.length; i++) {
    System.out.println(num1[i]);
}
  • 5
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值