Java System arraycopy() 方法



描述

Java System arraycopy() 方法將陣列從指定的源陣列(從指定位置開始)複製到目標陣列的指定位置。將由src引用的源陣列中的一個子序列陣列元件複製到由dest引用的目標陣列中。複製的元件數等於length引數。

源陣列中從srcPossrcPos + length - 1位置的元件分別複製到目標陣列中從destPosdestPos + length - 1位置。

宣告

以下是java.lang.System.arraycopy()方法的宣告

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

引數

  • src − 這是源陣列。

  • srcPos − 這是源陣列中的起始位置。

  • dest − 這是目標陣列。

  • destPos − 這是目標資料中的起始位置。

  • length − 這是要複製的陣列元素的數量。

返回值

此方法不返回值。

異常

  • IndexOutOfBoundsException − 如果複製會導致訪問陣列邊界之外的資料。

  • ArrayStoreException − 如果由於型別不匹配,src陣列中的元素無法儲存到dest陣列中。

  • NullPointerException − 如果src或dest為null。

示例:複製int陣列

以下示例顯示了 Java System arraycopy() 方法的使用。在此程式中,我們建立了兩個int陣列並用一些值初始化了它們。現在使用 System.arraycopy() 方法,將第一個陣列 arr1 的第一個元素複製到第二個陣列的索引 0 處。然後我們列印第二個陣列以顯示更新後的陣列作為結果。

package com.tutorialspoint;

public class SystemDemo {

   public static void main(String[] args) {

      int arr1[] = { 0, 1, 2, 3, 4, 5 };
      int arr2[] = { 5, 10, 20, 30, 40, 50 };
    
      // copies an array from the specified source array
      System.arraycopy(arr1, 0, arr2, 0, 1);
      
      System.out.print("array2 = ");
      
      for(int i= 0; i < arr2.length; i++) {
    	  System.out.print(arr2[i] + " ");
      }
   }
}

輸出

讓我們編譯並執行上述程式,這將產生以下結果:

array2 = 0 10 20 30 40 

示例:複製字串陣列

以下示例顯示了 Java System arraycopy() 方法的使用。在此程式中,我們建立了兩個字串陣列並用一些值初始化了它們。現在使用 System.arraycopy() 方法,將第一個陣列 arr1 的第一個元素複製到第二個陣列的索引 0 處。然後我們列印第二個陣列以顯示更新後的陣列作為結果。

package com.tutorialspoint;

public class SystemDemo {

   public static void main(String[] args) {

      String arr1[] = { "0", "1", "2", "3", "4", "5" };
      String arr2[] = { "5", "10", "20", "30", "40", "50" };
    
      // copies an array from the specified source array
      System.arraycopy(arr1, 0, arr2, 0, 1);
      
      System.out.print("array2 = ");
      
      for(int i= 0; i < arr2.length; i++) {
    	  System.out.print(arr2[i] + " ");
      }
   }
}

輸出

讓我們編譯並執行上述程式,這將產生以下結果:

array2 = 0 10 20 30 40 

示例:複製物件陣列

以下示例顯示了 Java System arraycopy() 方法的使用。在此程式中,我們建立了兩個 Student 物件陣列並用一些值初始化了它們。現在使用 System.arraycopy() 方法,將第一個陣列 arr1 的第一個元素複製到第二個陣列的索引 0 處。然後我們列印第二個陣列以顯示更新後的陣列作為結果。

package com.tutorialspoint;

public class SystemDemo {

   public static void main(String[] args) {

      Student arr1[] = { new Student(1, "Julie") };
      Student arr2[] = { new Student(2, "Robert"), new Student(3, "Adam") };

      // copies an array from the specified source array
      System.arraycopy(arr1, 0, arr2, 0, 1);
      System.out.print("array2 = ");

      for(int i= 0; i < arr2.length; i++) {      
         System.out.print(arr2[i] + " ");
      }
   }
}

class Student {
   int rollNo;
   String name;

   Student(int rollNo, String name){
      this.rollNo = rollNo;
      this.name = name;
   }

   @Override
   public String toString() {
      return "[ " + this.rollNo + ", " + this.name + " ]";
   }
}

輸出

讓我們編譯並執行上述程式,這將產生以下結果:

array2 = [ 1, Julie ] [ 3, Adam ] 
java_lang_system.htm
廣告