public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
- 從指定源數組中複製一個數組,複製從指定的位置開始,到目標數組的指定位置結束。從
src
引用的源數組到dest
引用的目標數組,數組組件的一個子序列被複製下來。被複制的組件的編號等於length
參數。源數組中位置在srcPos
到srcPos+length-1
之間的組件被分別複製到目標數組中的destPos
到destPos+length-1
位置。如果參數
src
和dest
引用相同的數組對象,則複製的執行過程就好像首先將srcPos
到srcPos+length-1
位置的組件複製到一個帶有length
組件的臨時數組,然後再將此臨時數組的內容複製到目標數組的destPos
到destPos+length-1
位置一樣。If 如果
dest
爲null
,則拋出NullPointerException
異常。如果
src
爲null
, 則拋出NullPointerException
異常,並且不會修改目標數組。否則,只要下列任何情況爲真,則拋出
ArrayStoreException
異常並且不會修改目標數組:src
參數指的是非數組對象。dest
參數指的是非數組對象。src
參數和dest
參數指的是那些其組件類型爲不同基本類型的數組。src
參數指的是具有基本組件類型的數組且dest
參數指的是具有引用組件類型的數組。src
參數指的是具有引用組件類型的數組且dest
參數指的是具有基本組件類型的數組。
否則,只要下列任何情況爲真,則拋出
IndexOutOfBoundsException
異常,並且不會修改目標數組:srcPos
參數爲負。destPos
參數爲負。length
參數爲負。srcPos+length
大於src.length
,即源數組的長度。destPos+length
大於dest.length
,即目標數組的長度。
否則,如果源數組中
srcPos
到srcPos+length-1
位置上的實際組件通過分配轉換並不能轉換成目標數組的組件類型,則拋出ArrayStoreException
異常。在這種情況下,將 k 設置爲比長度小的最小非負整數,這樣就無法將src[srcPos+
k]
轉換爲目標數組的組件類型;當拋出異常時,從srcPos
到srcPos+
k-1
位置上的源數組組件已經被複制到目標數組中的destPos
到destPos+
k-1
位置,而目標數組中的其他位置不會被修改。(因爲已經詳細說明過的那些限制,只能將此段落有效地應用於兩個數組都有引用類型的組件類型的情況。) -
- 參數:
src
- 源數組。srcPos
- 源數組中的起始位置。dest
- 目標數組。destPos
- 目標數據中的起始位置。length
- 要複製的數組元素的數量。- 拋出:
IndexOutOfBoundsException
- 如果複製會導致對數組範圍以外的數據的訪問。ArrayStoreException
- 如果因爲類型不匹配而使得無法將src
數組中的元素存儲到dest
數組中。NullPointerException
- 如果src
或dest
爲null
。參考來源java api:http://tool.oschina.net/apidocs/apidoc?api=jdk-zh