copyOf函数:把原数组中的数据复制到新数组中,属于深层拷贝。
在复制时会自动创建一个新数组,再调用arraycopy函数复制原数组
中的数据到新数组中。
src:原数组
srcpro:复制的起始索引
dest:目标数组
destPos:复制到目标数组的起始位置
length:复制的长度
public static native void arraycopy(Object src, int srcPos,
Object dest, int destPos,
int length);
public static int[] copyOf(int[] original, int newLength) {
int[] copy = new int[newLength];
System.arraycopy(original, 0, copy, 0,
Math.min(original.length, newLength));
return copy;
}
比如:
package collectionDemo;
import java.util.Arrays;
public class collectionArrays {
public static void main(String[] args) {
int[] arr= {1,2,3,4,5,6,7};
//属于深层拷贝
int [] arr1=Arrays.copyOf(arr, 3);
arr[2]=8;
System.out.print("arr1"+"[");
for(int i=0;i<arr1.length;i++) {
if(i==arr1.length-1) {
System.out.print(arr1[i]);
}else {
System.out.print(arr1[i]+","+" ");
}
}
System.out.print("]");
System.out.println();
System.arraycopy(arr1, 0, arr, 4, 3);
System.out.print("arr"+"[");
for(int j=0;j<arr.length;j++) {
if(j==arr.length-1) {
System.out.print(arr[j]);
}else {
System.out.print(arr[j]+","+" ");
}
}
System.out.println("]");
}
}
输出结果:
版权声明:本文为weixin_43842753原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。