今天用Java刷力扣题时,感觉一模一样的C++代码能过但Java就是过不了,然后打印了一下元素,原来问题出在
C++是可以这样写的,但是Java这样写问题就大了,这样就等于将nums的地址直接赋给b数组,两个数组共用一个地址,所以nums进行变化时,b数组也会随之变化,所以正确的数组复制的方法是
1.遍历赋值
使用for循环,从0到arr.length长度依次遍历赋值,值传递。
import java.util.Arrays;
public class Test01 {
public static void main(String[]args) {
int []arr= {1,2,3,4,5};
int []arr2;
arr2 = new int[arr.length]; //开辟跟arr一样的长度的空间;
for(int i=0;i<arr.length;i++) {
arr2[i] = arr[i]; //依次遍历赋值
}
System.out.println(Arrays.toString(arr2));
}
}
2.使用Object类中的clone()方法
import java.util.Arrays;
public class Test01 {
public static void main(String[]args) {
int []arr= {6,7,8,9,10};
int []arr4;
arr4 = arr.clone();
System.out.println(Arrays.toString(arr4));
}
}
版权声明:本文为m0_63263973原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。