JAVA中複製數組的方法

來源:互聯網
上載者:User

標籤:

     在JAVA裡面,可以用複製語句”A=B”給基本類型的資料傳遞值,但是如果A,B是兩個同類型的數組,複製就相當於將一個陣列變數的引用傳遞給另一個數組;如果一個數組發生改變,那麼

引用同一數組的變數也要發生改變.

以下是歸納的JAVA中複製數組的方法:

1.使用FOR迴圈,將數組的每個元素複製或者複製指定元素,不過效率差一點

2.使用clone方法,得到數組的值,而不是引用,不能複製指定元素,靈活性差一點

3.使用System.arraycopy(src, srcPos, dest, destPos, length)方法,推薦使用

舉例:

1.使用FOR迴圈

int[] src={1,3,5,6,7,8};

int[] dest = new int[6];

for(int i=0;i<6;i++)  dest[i] = src[i];

2.使用clone

int[] src={1,3,5,6,7,8};

int[] dest;

dest=(int[]) src.clone();//使用clone建立

副本,注意clone要使用強制轉換

3.使用System.arraycopy

int[] src={1,3,5,6,7,8};

int[] dest = new int[6];

System.arraycopy(src, 0, dest, 0, 6);
——————————————————————-
System提供了一個靜態方法arraycopy(),我們可以使用它來實現數組之間的複製.

其函數原型是:

public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)

src:源數組;

srcPos:源數組要複製的起始位置;

dest:目的數組;

destPos:目的數組放置的起始位置;

length:複製的長度.

注意:src and dest都必須是同類型或者可以進行轉換類型的數組.

有趣的是這個函數可以實現自己到自己複製,

比如:

int[] fun ={0,1,2,3,4,5,6};

System.arraycopy(fun,0,fun,3,3);

則結果為:{0,1,2,0,1,2,6};

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.