**
数组复制
**
Arrays类中的 copyOf() 方法与 copyOfRange() 方法可以实现对数组的复制。
1.copyOf() 方法----复制数组至指定长度
语法如下:copyOf(arr,newlength)
(1)arr:要进行复制的数组
(2)nwlength:指复制后的新数组的长度。如果新数组的长度大于数组 arr 的长度,则用0填充(根据复制数组的类型来决定填充的值,整数型用 0 填充,char 型数组则使用 null 来填充);如果复制后的数组长度小于数组 arr 的长度,则会从数组 arr 的第一个元素开始截取至满足新数组长度为止。
例:创建类A,在主方法中创建一维数组,实现将此数组复制得到一个长度为5的新数组,并将新数组输出
public class A{
public static void main(String[] args) {
int arr[]=new int[] {23,42,16};
int newarr[]=Arrays.copyOf(arr,2);//复制数组arr
for(int i=0;i<newarr.length;i++) {//循环变量复制后的新数组
System.out.println(newarr[i]);//将新数组输出
}
}
}
2.copyOfRange() 方法----将指定数组的指定长度复制到一个新数组中
语法如下:copyOfRange (arr, int fromIndex,int toIndex)
(1) arr:要进行复制的数组对象
(2) fromIndex:指定开始复制数据的索引位置。fromIndex 必须在 0 至整个数组的长度之间。新数组包括索引是 fromIndex 的元素。
(3) toIndex:要复制范围的最后索引位置。可大于数组 arr 的长度。新数组不包括索引是 toIndex 的元素。
例:创建类B,在主方法中创建一维数组,并将数组索引位置是0~3之间的元素复制到新数组中,最后将新数组输出
public class B {
public static void main(String[] args) {
int arr[]=new int[] {23,42,16,56,63};//定义数组
int newarr[]=Arrays.copyOfRange(arr,0,3);//复制数组arr
for(int i=0;i<newarr.length;i++) {//循环变量复制后的新数组
System.out.println(newarr[i]);//将新数组输出
}
}
}