本小节主要讲的是数组复制的一个问题
在EClipse里面输入System.arraycopy会自动显示:
System.arraycopy(src, srcPos, dest, destPos, length);
src-------源数组
scrPos--------源数组起始位置
dest----------目标数组
destPos-----------目标数组的起始位置
例:int []a=new int[]{10,20,30,40,50};
int []b=new int[6];
System.arraycopy(a, 1, b, 0, 4);
最后输出的结果:20 30 40 50 0 0 //因为b数组有6个没有被赋值的默认为0
Arrays.copyOf也用于数组复制
使用java.util.Arrays类的copyOf方法实现数组复制:
类型1 [ ]newArray=Arrays.copyOf(类型 original,int newLength)
newLength小于源数组,则进行截取
newLength大于源数组,则用0或null进行填充
所以产生的新数组可以大于源数组
例:int [ ]a={10,20,30,40,50};
int [ ]b=Arrays.copyOf(a,6);
b数组里面的元素为:10 20 30 40 50 0