ArrayCopy

ArrayCopy底层实现分析

int[] arr=new[]{1,2,3,4,5};
int[] arr1=Arrays.copyof(arr,6);
System.out.println(Arrays.toString(arr1));

//控制台
[1, 2, 3, 4, 5, 0]
  • 这里是拿int类型的copyof来做示范,其实其他类型也都一样,这里就不一一为大家详细介绍其他类型的了。
  • int[] original:这个参数指的是arr数组,此数组为源数组
  • int newLength:这个参数指定的是我们传入的要复制数组的长度
 public static int[] copyOf(int[] original, int newLength) {
     	//内部创建了一个数组(此数组相当于arraycopy中的目标数组)
        int[] copy = new int[newLength];
     
     	//original:源数组
     	//0:源数组从0开始计算
     	//copy:目标数组(也就是刚刚创建的那个数组)
     	//Math.min(original.length, newLength):这个参数就是要从源数组中复制几个长度。
     
     	//如果传入的数组长度比源数组的长度大,那么就会直接复制整个源数组
   			//此时可能会因为你传入的长度比源数组长度大,导致超过源数组长度的数组后,超过之后的数组元素则填充类型**默认值**
     
     	//如果传入的数组长度比源数组的长度小,那么就会直接取传入的数组长度
        System.arraycopy(original, 0, copy, 0,
            					Math.min(original.length, newLength));
        return copy;
   }

此表是超过源数组长度后,数组元素填充类型的默认值

数据型态初值
byte0
short0
int0
long0L
float0.0f
double0.0d
char\u0000
booleanfalse
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值