java數組拷貝

來源:互聯網
上載者:User

標籤:

數組的拷貝 分為 2種情況,一種為淺拷貝,即引用傳遞,第二種為深拷貝,即不單單只是拷貝了引用,同時開闢了一塊新的記憶體空間

一)淺拷貝有三種方式:

//第一種方式利用for迴圈:int[] a={1,2,4,6};int length=a.length;int[] b=new int[length];for (int i = 0; i < length; i++) {b[i]=a[i];}//第二種方式直接賦值:int[] array1={1,2,4,6};int[] array2=a;/*這裡把array1數組的值複製給array2,如果你這樣去運行,就會發現此時兩個數組的值是一樣的。這是傳遞的是引用(也就是地址),之後改變其中一個數組另一個也會跟著變化。*/ //第三種方式:利用Arrays內建的copyof int copy[] = Arrays.copyOf(a, a.length);

二)一維數組的深拷貝(system.arrayCopy())

        /**
        * 數組深拷貝的方法有如下幾種:
        * 1。 調用clone
        * 2。 調用System.arraycopy
        * 以上兩種對基本類型和物件類型資料效果等同。
        * 3。 使用FOR迴圈,將數組的每個元素複製。(注意調用clone方法)
        */

舉例:

       Object[] src = new Object[]{ new String("Zhao"),                                        Integer.valueOf(1),                                        Integer.valueOf(2),                                        Integer.valueOf(3),                                        Integer.valueOf(4)};                                      Object[] dest = src.clone();                //1.拷貝資料               // Object[] dest = new Object[5];        // System.arraycopy(src, 0, dest, 0, dest.length);               System.out.println( dest.equals(src));       System.out.println( dest == src );       for (int i = 0; i < dest.length; i++) {           System.out.print( dest[i]+", " );                dest[i] = new String("KE");               //2.改變新數組內容                              System.out.print( dest[i]+", " );                    System.out.println( src[i]+",");          //3.不影響原始數組        }       System.out.println();

 注意: 一維數組下的深拷貝在 多維陣列 只是淺拷貝!!

java數組拷貝

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.