語言

JavaSystem.Arraycopy(Object, Int32, Object, Int32, Int32) 方法

定義

從指定來源陣列從指定位置複製一個陣列,從指定位置開始,複製到目標陣列的指定位置。

[Android.Runtime.Register("arraycopy", "(Ljava/lang/Object;ILjava/lang/Object;II)V", "")]
public static void Arraycopy(Java.Lang.Object src, int srcPos, Java.Lang.Object dest, int destPos, int length);
[<Android.Runtime.Register("arraycopy", "(Ljava/lang/Object;ILjava/lang/Object;II)V", "")>]
static member Arraycopy : Java.Lang.Object * int * Java.Lang.Object * int * int -> unit

參數

src
Object

源陣列。

srcPos
Int32

在來源陣列中的起始位置。

dest
Object

目的地陣列。

destPos
Int32

目的資料中的起始位置。

length
Int32

要複製的陣列元素數量。

屬性

備註

從指定來源陣列從指定位置複製一個陣列,從指定位置開始,複製到目標陣列的指定位置。 陣列組件的子序列會從參考 src 的來源陣列複製到目標 dest陣列。 複製的元件數量等於該 length 參數。 來源srcPos陣列中位於 的位置 的srcPos+length-1元件會被複製到destPosdestPos+length-1目的陣列中 的位置。

srcdest 參數指向同一陣列物件,則複製時,將位於 的srcPos元件srcPos+length-1先複製到帶有length元件的臨時陣列,接著將臨時陣列的內容複製到destPos目的陣列的 Position ThroughdestPos+length-1

destnull則拋出 a NullPointerException

srcnull,則拋出 a NullPointerException 且目標陣列未被修改。

否則,若以下任一為真,則拋出 an ArrayStoreException 且目標不被修改: <ul><li>該 src 參數指的是一個非陣列的物件。 <li>這個 dest 參數指的是一個不是陣列的物件。 <li>參數srcdest與參數指的是其組成類型為不同原始型態的陣列。 <li>參數 src 指的是具有原始元件型態的陣列,而參數 dest 則指的是具有參考元件型態的陣列。 <li>參數 src 指的是一個帶有參考元件類型的陣列,而參數 dest 則指的是具有原始元件類型的陣列。 </ul>

否則,若以下任一為真,則拋出 an IndexOutOfBoundsException 且目標不改: <ul><li>該 srcPos 參數為負。 <李>論 destPos 點是否定的。 <李>論 length 點是否定的。 <LI>srcPos+length 大於 src.length來源陣列的長度。 <LI>destPos+length 大於 dest.length目的陣列的長度。 </ul>

否則,如果來源陣列中從位置 srcPossrcPos+length-1 位置的任何實際元件無法透過指派轉換轉換為目的陣列的元件類型,則會拋出 a ArrayStoreException 。 此時,設 <b>k</b> 為最小且長度小於 k 的非負整數,且 src[srcPos+k] 無法轉換為目的陣列的元件類型;當拋出例外時,從 srcPossrcPos+位置-1的來源陣列元件已複製到目標destPos陣列 destPos+ 的位置-1,且目的陣列的其他位置不會被修改。 (由於已列明的限制,本段實際上僅適用於兩個陣列的元件類型皆為參考型態的情況。)

Java 文件 java.lang.System.arraycopy(java.lang.Object, int, java.lang.Object, int, int)

本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。

適用於