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

Sheeraz Gul 2023年10月12日
在 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]
作者: Sheeraz Gul
Sheeraz Gul avatar Sheeraz Gul avatar

Sheeraz is a Doctorate fellow in Computer Science at Northwestern Polytechnical University, Xian, China. He has 7 years of Software Development experience in AI, Web, Database, and Desktop technologies. He writes tutorials in Java, PHP, Python, GoLang, R, etc., to help beginners learn the field of Computer Science.

LinkedIn Facebook

相关文章 - Java Array