Java中Arrays类中copyOf函数的用法

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版权协议,转载请附上原文出处链接和本声明。