Java复制(拷贝)数组的五种方法汇总
一、使用for循环逐一复制
这是最基本的数组复制方法,适用于任何类型的数组。代码示例如下:
int[] arr1 = {1, 2, 3, 4, 5};
int[] arr2 = new int[arr1.length]; // 创建空数组,长度等于原数组
for (int i = 0; i < arr1.length; i++) {
arr2[i] = arr1[i];
}
二、使用java.util.Arrays类的copyOf方法复制
java.util.Arrays类提供了一个copyOf方法,可以用于复制一维数组和二维数组。示例如下:
int[] arr1 = {1, 2, 3, 4, 5};
int[] arr2 = Arrays.copyOf(arr1, arr1.length);
三、使用java.util.Arrays类的copyOfRange方法复制
java.util.Arrays类的另一个方法是copyOfRange,它可以复制从指定位置开始到结束位置的一部分原数组。例如:
int[] arr1 = {1, 2, 3, 4, 5};
int[] arr2 = Arrays.copyOfRange(arr1, 0, 3);
以上代码将复制原数组arr1从位置0到位置3的元素(不包括第4个元素)到新数组arr2。
四、使用System.arraycopy复制
System.arraycopy方法是Java中用于复制数组的方法之一。以下是使用System.arraycopy方法的示例:
int[] arr1 = {1, 2, 3, 4, 5};
int[] arr2 = new int[arr1.length];
System.arraycopy(arr1, 0, arr2, 0, arr1.length);
五、使用Arrays.stream和toArray方法复制
这个方法适用于Java 8及以上版本。示例如下:
int[] arr1 = {1, 2, 3, 4, 5};
int[] arr2 = Arrays.stream(arr1).toArray();
示例说明
示例1:使用Arrays.copyOf方法
public class ArraysCopyOfDemo {
public static void main(String[] args) {
int[] arr1 = {1, 2, 3, 4, 5};
int[] arr2 = Arrays.copyOf(arr1, 3);
System.out.println("原数组内容:" + Arrays.toString(arr1));
System.out.println("复制后数组内容:" + Arrays.toString(arr2));
}
}
输出结果:
原数组内容:[1, 2, 3, 4, 5]
复制后数组内容:[1, 2, 3]
示例2:使用System.arraycopy方法
public class SystemArrayCopyDemo {
public static void main(String[] args) {
int[] arr1 = {1, 2, 3, 4, 5};
int[] arr2 = new int[arr1.length];
System.arraycopy(arr1, 2, arr2, 0, 3);
System.out.println("原数组内容:" + Arrays.toString(arr1));
System.out.println("复制后数组内容:" + Arrays.toString(arr2));
}
}
输出结果:
原数组内容:[1, 2, 3, 4, 5]
复制后数组内容:[3, 4, 5, 0, 0]
总结
以上是Java中五种常见的数组复制方法,每种方法适用于不同的情况。在选择复制方法时,可以根据需求和所选版本的Java API文档,选择适合的方法。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java复制(拷贝)数组的五种方法汇总 - Python技术站