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
广告