📜  java 复制数组 - Java (1)

📅  最后修改于: 2023-12-03 15:01:33.512000             🧑  作者: Mango

Java 复制数组

在Java中,一个数组可以通过复制其元素来创建一个新的数组。这在许多场景中都十分有用,例如当你需要对原数组进行修改而不希望影响到原来的数据时。

使用Array类进行复制

Java中的Array类提供了许多便捷的方法来操作数组,其中包括复制数组的方法:arraycopy()

以下是arraycopy()方法的定义:

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

它的参数解释如下:

  • src:表示原数组。
  • srcPos:表示原数组的起始位置。
  • dest:表示复制出的新数组。
  • destPos:表示新数组的起始位置。
  • length:表示要复制的元素个数。

下面是一个使用arraycopy()方法来复制数组的例子:

public class Main {
  public static void main(String[] args) {
    int[] a = {1, 2, 3};
    int[] b = new int[3];
    System.arraycopy(a, 0, b, 0, 3);
    for (int i : b) {
      System.out.println(i);
    }
  }
}

输出:

1
2
3
使用Arrays类进行复制

除了上面提到的Array类之外,Java中的Arrays类也提供了复制数组的方法。Arrays类提供的该方法为:

Arrays.copyOf(arr, length)

其中,arr代表被复制的原始数组,length代表要拷贝的元素个数。

下面是一个使用Arrays.copyOf()来复制数组的例子:

public class Main {
  public static void main(String[] args) {
    int[] a = {1, 2, 3};
    int[] b = Arrays.copyOf(a, 3);
    for (int i : b) {
      System.out.println(i);
    }
  }
}

输出:

1
2
3
使用clone()方法进行复制

Java中的数组还提供了一个clone()方法,用于创建当前数组的一份副本。

int[] array1 = {1, 2, 3, 4, 5};
int[] array2 = array1.clone();

使用clone()方法进行复制的时候,需要注意以下几点:

  • 需要将复制的数组声明成和原数组同类型的数组。
  • 复制出的数组也与原数组完全独立,它们的改动互不影响。

下面是一个使用clone()方法来复制数组的例子:

public class Main {
  public static void main(String[] args) {
    int[] a = {1, 2, 3};
    int[] b = a.clone();
    for (int i : b) {
      System.out.println(i);
    }
  }
}

输出:

1
2
3
总结

以上就是在Java中复制数组的三种方式,每种方式都有它自己的适用场景。在函数传参中,使用arraycopy()方法就可以解决在函数内部修改原数组的问题;在需要重新定义、初始化数组时,使用Arrays.copyOf()方法可以简化代码;在需要多个数组同时操作时,可以使用clone()方法来保证它们互相独立。因此,能够熟练使用这三种方法复制数组对Java程序员来说是非常重要的一个技能。