HOWTO · Java

在 Java 中设置一个数组等于另一个数组

本教程演示如何在 Java 中设置一个数组等于另一个数组。

本页内容

在 Java 中有几种方法可以使数组与另一个数组相等。本教程演示如何在 Java 中将一个数组值设置为等于另一个数组值。

在 Java 中设置一个数组等于另一个数组

如上所述,可以使用多种方式将 Java 中的数组设置为与另一个数组相等。这里有几种方法:

  1. 创建一个与前一个长度相同的数组,并复制每个元素。
  2. 使用 System.ArrayCopy() 方法,我们可以复制数组的子集。它需要两个数组和输出数组的长度作为参数。
  3. 我们可以使用 clone() 方法克隆一个数组。
  4. 使用 Array.copyof() 和 Arrays.copyOfRange() 方法,我们也可以复制一个数组。Arrays.copyof() 方法将数组和元素数量作为参数,Arrays.copyOfRange() 将数组和元素范围作为参数。
  5. 另外,将一个数组分配给另一个数组的一种最简单的方法,但它有一个副作用,如果我们更改一个数组的元素,稍后将在第二个数组中更改它。以上所有方法都没有这种副作用。

让我们尝试一个可以实现上述所有方法的示例。

package delftstack;

import java.util.Arrays;

public class Array_Copy {
  public static void main(String args[]) {
    // Method 1: Copy array by the same length
    String[] Array1 = {"delftstack1", "delftstack2", "delftstack3"};
    String[] Array2 = new String[Array1.length];
    for (int i = 0; i < Array2.length; i++) {
      Array2[i] = Array1[i];
    }
    System.out.println("Method 1: ");
    System.out.print("Array 1: " + Arrays.toString(Array1));
    System.out.print("\nArray 2: " + Arrays.toString(Array2));

    // Method 2: Using System.arraycopy method
    String[] Array3 = {"delftstack1", "delftstack2", "delftstack3"};
    String[] Array4 = new String[Array3.length];
    System.arraycopy(Array3, 0, Array4, 0, Array4.length);

    System.out.println("\nMethod 2: ");
    System.out.print("Array 3: " + Arrays.toString(Array3));
    System.out.print("\nArray 4: " + Arrays.toString(Array4));

    // Method 3: using clone() method
    String[] Array5 = {"delftstack1", "delftstack2", "delftstack3"};
    String[] Array6 = Array5.clone();

    System.out.println("\nMethod 3: ");
    System.out.print("Array 5: " + Arrays.toString(Array5));
    System.out.print("\nArray 6: " + Arrays.toString(Array6));

    // Method 4: using Arrays.copyOf() and Arrays.copyOfRange() methods
    String[] Array7 = {"delftstack1", "delftstack2", "delftstack3"};
    String[] Array8 = Arrays.copyOf(Array7, 3);
    String[] Array9 = Arrays.copyOfRange(Array7, 0, 3);

    System.out.println("\nMethod 4: ");
    System.out.print("Array 7: " + Arrays.toString(Array7));
    System.out.print("\nArray 8: " + Arrays.toString(Array8));
    System.out.print("\nArray 9: " + Arrays.toString(Array9));

    // Method 5: using clone() method
    String[] Array10 = {"delftstack1", "delftstack2", "delftstack3"};
    String[] Array11 = Array10;

    // Check the side effect
    Array10[2] = "Changed";
    System.out.println("\nMethod 5: ");
    System.out.print("Array 10: " + Arrays.toString(Array10));
    System.out.print("\nArray 11: " + Arrays.toString(Array11));
  }
}

上面的代码使用了上面描述的所有方法,并在 Java 中设置一个数组等于另一个数组,复制一个数组。见输出:

Method 1:
Array 1: [delftstack1, delftstack2, delftstack3]
Array 2: [delftstack1, delftstack2, delftstack3]
Method 2:
Array 3: [delftstack1, delftstack2, delftstack3]
Array 4: [delftstack1, delftstack2, delftstack3]
Method 3:
Array 5: [delftstack1, delftstack2, delftstack3]
Array 6: [delftstack1, delftstack2, delftstack3]
Method 4:
Array 7: [delftstack1, delftstack2, delftstack3]
Array 8: [delftstack1, delftstack2, delftstack3]
Array 9: [delftstack1, delftstack2, delftstack3]
Method 5:
Array 10: [delftstack1, delftstack2, Changed]
Array 11: [delftstack1, delftstack2, Changed]