JAVA中複製數組的五種方法__JAVA

來源:互聯網
上載者:User
“=”,相當於將一個陣列變數的引用傳遞給另一個數組;如果一個數組發生改變,那麼引用同一數組的變數也要發生改變. 使用FOR迴圈,將數組的每個元素複製或者複製指定元素,不過效率差一點 使用clone方法,得到數組的值,而不是引用,不能複製指定元素,靈活性差一點 使用System.arraycopy(src, srcPos, dest, destPos, length)方法,推薦使用,效率最高


public static native void arraycopy(Object src, int srcPos, Object dest, int destPos,int length);
src:源數組; srcPos:源數組要複製的起始位置;
dest:目的數組; destPos:目的數組放置的起始位置;
length:複製的長度.

因為根據System.arraycopy()源碼,可以看到是native方法:native關鍵字說明其修飾的方法是一個原生態方法,方法對應的實現不是在當前檔案,而是在用其他語言(如C和C++)實現的檔案中。 可以將native方法比作Java程式同C程式的介面。

5 . copyOf(),,不是System的方法,而是Arrays的方法,下面是源碼,可以看到本質上是調用的arraycopy方法。,那麼其效率必然是比不上 arraycopy的.

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;}

使用方法:
1.使用clone
int[] src={1,3,5,6,7,8};
int[] dest;
dest=(int[]) src.clone();//使用clone棄置站台,注意clone要使用強制轉換

2、使用System.arraycopy
int[] src={1,3,5,6,7,8};
int[] dest = new int[6];
System.arraycopy(src, 0, dest, 0, 6);

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.