Java中将数组复制到另一个数组中有哪些不同的方法

通常,数组是存储相同数据类型的多个变量的容器。这些是固定大小的,大小在创建时确定。数组中的每个元素都以从0开始的数字定位。您可以使用名称和位置来访问数组中的元素-

System.out.println(myArray[3]);

//Which is 1457

Creating an array in Java:

在Java中,将数组视为引用类型,您可以使用类似于对象的new关键字创建数组,并使用索引将其填充为-

int myArray[] = new int[7];

myArray[0] = 1254;

myArray[1] = 1458;

myArray[2] = 5687;

myArray[3] = 1457;

myArray[4] = 4554;

myArray[5] = 5445;

myArray[6] = 7524;

或者,您可以直接在花括号中分配值,并用逗号(,)将它们分隔为-

int myArray = { 1254, 1458, 5687, 1457, 4554, 5445, 7524};

复制数组

您可以通过几种方式从另一个数组复制一个数组-

逐元素复制 -一种方法是使用原始数组的长度创建一个空数组,然后复制每个元素(循环)。

示例

import java.util.Arrays;

public class CopyingArray {

   public static void main(String args[]) {

      //源数组(int)

      int integerArray1[] = { 1254, 1458, 5687, 1457, 4554, 5445, 7524};

      //数组的长度

      int length1 = integerArray1.length;

      //创建空数组

      int integerArray2[] = new int[length1];

      for (int i=0; i<length1; i++) {

         integerArray2[i] = integerArray1[i];

      }

      System.out.println("Original array: "+Arrays.toString(integerArray1));

      System.out.println("Copied array: "+Arrays.toString(integerArray2));

      //源数组(String)

      String StringArray1[] = { "Mango", "Apple", "Orange", "Banana", "Cherries"};

      //数组的长度

      int length2 = StringArray1.length;

      //创建空数组

      String StringArray2[] = new String[length2];

      for (int i=0; i<length2; i++) {

         StringArray2[i] = StringArray1[i];

      }

      System.out.println("Original array: "+Arrays.toString(StringArray1));

      System.out.println("Copied array: "+Arrays.toString(StringArray2));

   }

}

输出结果

Original array: [1254, 1458, 5687, 1457, 4554, 5445, 7524]

Copied array: [1254, 1458, 5687, 1457, 4554, 5445, 7524]

Original array: [Mango, Apple, Orange, Banana, Cherries]

Copied array: [Mango, Apple, Orange, Banana, Cherries]

使用clone()方法 - java.lang.Object类的clone()方法接受一个对象作为参数,创建并返回其副本。

示例

import java.util.Arrays;

public class CopyingArray {

   public static void main(String args[]) {

      //源数组(int)

      int integerArray1[] = { 1254, 1458, 5687, 1457, 4554, 5445, 7524};

      //克隆数组

      int integerArray2[] = integerArray1.clone();

      System.out.println("Original array: "+Arrays.toString(integerArray1));

      System.out.println("Copied array: "+Arrays.toString(integerArray2));

      //源数组(String)

      String StringArray1[] = { "Mango", "Apple", "Orange", "Banana", "Cherries"};

      //克隆数组

      String StringArray2[] = StringArray1.clone();

      System.out.println("Original array: "+Arrays.toString(StringArray1));

      System.out.println("Copied array: "+Arrays.toString(StringArray2));

   }

}

输出结果

Original array: [1254, 1458, 5687, 1457, 4554, 5445, 7524]

Copied array: [1254, 1458, 5687, 1457, 4554, 5445, 7524]

Original array: [Mango, Apple, Orange, Banana, Cherries]

Copied array: [Mango, Apple, Orange, Banana, Cherries]

使用System.arraycopy()方法-System类的copy()方法接受两个数组(以及其他详细信息),并将一个数组的内容复制到另一个数组。

示例

import java.util.Arrays;

public class CopyingArray {

   public static void main(String args[]) {

      //源数组(int)

      int integerArray1[] = { 1254, 1458, 5687, 1457, 4554, 5445, 7524};

      //Length of the array

      int length1 = integerArray1.length;

      //目标数组

      int integerArray2[] = new int[length1];

      //复制数组

      System.arraycopy(integerArray1, 0, integerArray2, 0, length1);

      System.out.println("Original array: "+Arrays.toString(integerArray1));

      System.out.println("Copied array: "+Arrays.toString(integerArray2));

      //源数组(String)

      String StringArray1[] = { "Mango", "Apple", "Orange", "Banana", "Cherries"};

      //数组的长度

      int length2 = StringArray1.length;

      //目标数组

      String StringArray2[] = new String[length2];

      //复制数组

      System.arraycopy(StringArray1, 0, StringArray2, 0, length2);

      System.out.println("Original array: "+Arrays.toString(StringArray1));

      System.out.println("Copied array: "+Arrays.toString(StringArray2));

   }

}

输出结果

Original array: [1254, 1458, 5687, 1457, 4554, 5445, 7524]

Copied array: [1254, 1458, 5687, 1457, 4554, 5445, 7524]

Original array: [Mango, Apple, Orange, Banana, Cherries]

Copied array: [Mango, Apple, Orange, Banana, Cherries]


以上是 Java中将数组复制到另一个数组中有哪些不同的方法 的全部内容, 来源链接: utcz.com/z/356942.html

回到顶部