数组复制(java)

文章目录

  • 一维数组
    • 1. 使用循环进行逐个元素复制
    • 2. 使用Arrays类的copyOf方法
    • 3. 使用System类的arraycopy方法
  • 二维数组
    • 1. 使用循环进行逐个元素复制
    • 2. 使用Arrays类的copyOf方法
    • 3. 使用System类的arraycopy方法

注意
在Java中直接等于,如:

int[] num = new int[10];
int[] res = new int[10];
res = num;

复制的是地址,两个数组共同使用一个内存,当一个数组进行修改时,另一个数组的值也会发生变化。

在Java中,数组是一种用于存储固定大小的元素集合的数据结构。有时候我们需要将一个数组的内容复制到另一个数组中,Java提供了多种方法来实现这个目的。

一维数组

1. 使用循环进行逐个元素复制

最简单的方法是使用循环遍历原始数组,并将每个元素逐个复制到新数组中。这种方法需要手动编写代码来复制每个元素,适用于简单的情况。

for (int i = 0; i < num.length; i++) {
	res[i] = num[i];
}

这种方法适用于任何类型的数组,包括基本类型和引用类型。

2. 使用Arrays类的copyOf方法

Java提供了Arrays类,其中包含许多有用的数组操作方法。其中一个是copyOf方法,可以使用它来复制数组的指定部分或整个数组。

该方法将源数组的内容复制到一个新数组中,并返回该新数组。如果需要复制数组的一部分,可以指定起始和结束位置。

Arrays.copyOf(原数组, 目标数组长度);

res = Arrays.copyOf(num, num.length);

3. 使用System类的arraycopy方法

除了Arrays类的copyOf方法外,Java还提供了System类的arraycopy方法,可以在原始数组和目标数组之间高效地复制数组的内容。

该方法的参数分别为源数组、源数组的起始位置、目标数组、目标数组的起始位置以及要复制的元素数量。

System.arraycopy(原数组,开始位置,目标数组,开始位置,复制长度);

System.arraycopy(num, 0, res, 0, num.length);

二维数组

二维数组与一维数组类似。

1. 使用循环进行逐个元素复制

最简单的方法是使用循环遍历原始数组,并将每个元素逐个复制到新数组中。这种方法需要手动编写代码来复制每个元素,适用于简单的情况。

for (int i = 0; i < num.length; i++) {
	for (int j = 0; j < num[i].length; j++) {
		res[i][j] = num[i][j];
	}
}

这种方法适用于任何类型的数组,包括基本类型和引用类型。

2. 使用Arrays类的copyOf方法

Java提供了Arrays类,其中包含许多有用的数组操作方法。其中一个是copyOf方法,可以使用它来复制数组的指定部分或整个数组。

该方法将源数组的内容复制到一个新数组中,并返回该新数组。如果需要复制数组的一部分,可以指定起始和结束位置。

Arrays.copyOf(原数组, 目标数组长度);

for (int i = 0; i < num.length; i++) {
	res[i] = Arrays.copyOf(num[i], num[i].length);
}

3. 使用System类的arraycopy方法

除了Arrays类的copyOf方法外,Java还提供了System类的arraycopy方法,可以在原始数组和目标数组之间高效地复制数组的内容。

该方法的参数分别为源数组、源数组的起始位置、目标数组、目标数组的起始位置以及要复制的元素数量。

System.arraycopy(原数组,开始位置,目标数组,开始位置,复制长度);

for (int i = 0; i < num.length; i++) {
	System.arraycopy(num[i], 0, res[i], 0, num[i].length);
}	

总结

简单介绍了Java中数组复制的三种方法。
使用循环进行逐个元素复制适用于简单的情况,而使用Arrays类的copyOf方法System类的arraycopy方法可以提供更便捷和高效的复制功能。
根据实际需求选择适合的方法来对数组进行复制,可以提高代码的效率和可读性。

你可能感兴趣的:(java,python,前端)