在处理某些数组问题时,总会遇到需要使用一个与目标数组同等空间的数组,或需要对其进行复制。
但在java当中,数组的变量名代表的仅仅是其在内存中的物理地址而不是其数组内容。
//初始化数组
int [] nums1 = new int[]{
1,2,3,4,5,6,7};
int [] nums2 = new int[nums1.length]; //创建一个与nums1等同空间的数组以便复制;
nums2 = nums1;
若仅用变量名赋值会导致nums2的地址指向了nums1的地址, 而原先nums2的数组仍然为刚创立时的空数组,而这并不能达到我们预想的那样,故数组的复制还需使用其他方法。
1、一维数组复制
方法1:简单的for或增强for循环赋值,不再描述。
方法2:clone拷贝:
public static void main(String[] args) {
int[] nums1 = new int[]{
1,2,3,4,5,6};
int[] nums2 = new int[nums1.length];
nums2=nums1.clone();
}
复制后 nums2与nums1内容相同,但地址指向不同;
方法3: System.arraycopy:
System.arraycopy(Object src,int srcPos, Object dest,int destPos ,int length)
src : 源数组
srcPos:源数组的开始位置 0 开始拷贝的位置
dest:拷贝到目标数组
destPos:拷贝到目标数组的位置
length:需要复制的长度
public static