Java数组地址传递

  • Post author:
  • Post category:java


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