如何在Java中复制/克隆数组 |
您所在的位置:网站首页 › java怎么调用数组方法的函数 › 如何在Java中复制/克隆数组 |
在制作原始类型的副本时,任务相当容易,但是当涉及对象或引用时,您需要注意副本是深副本还是浅副本。 浅拷贝将复制元素。当涉及原始数据类型时,这不是问题。但是,当涉及到引用时,浅表副本将仅复制值而不是基础信息。 因此,即使您已经复制了元素,但是在共享存储位置时,一个副本中的更改也会反映在其他副本中。为避免这种情况,您需要进行深拷贝,其中不共享内存位置。 复制和克隆Java数组 Java允许您使用java.util或System类提供的直接复制方法来复制数组。它还提供了用于克隆整个阵列的克隆方法。 在本教程中,我们将讨论以下复制和克隆数组的方法。 使用for循环手动复制使用System.arraycopy()使用Arrays.copyOf()使用Arrays.copyOfRange()使用Object.clone()让我们探索!! 使用For循环手动复制通常,当我们复制变量(例如a和b)时,我们将执行以下复制操作: a = b; 如果我们对数组应用相同的方法,它将无法正常工作。 让我们看一个编程示例。 public class Main { public static void main(String[] args) { int intArray[] = {12,15,17}; //print original intArray System.out.println("Contents of intArray[] before assignment:"); for (int i=0; i2,4,6,8}; System.out.println("Original Array:" + Arrays.toString(even_Array)); // copying array even_Array to copy_Array int[] copy_Array = Arrays.copyOf(even_Array,5); System.out.println("Copied Array:" + Arrays.toString(copy_Array)); // assign value to unassigned element of copied array copy_Array[4] = 10; System.out.println("Copied and modified Array:" + Arrays.toString(copy_Array)); } }输出: 在上面的程序中,我们使用copyOf方法复制了长度为4的even_Array。提供的第二个参数是5。因此,新复制的数组中包含5个元素。前四个与原始数组相同,而第五个元素在copyOf填充时为0,因为原始数组的长度小于新数组的长度。 使用Arrays.copyOfRange()当您要复制部分数组时,特别使用Arrays.copyOfRange()方法。与copyOf()方法一样,此方法在内部也使用System.arraycopy()方法。 Arrays.copyOfRange()方法的原型如下: public static short[] copyOfRange(short[] original, int from, int to)哪里, original:要从中复制范围的数组。from:要复制范围的初始索引(包括)。to:要复制的范围的最终索引(不包括)。下面显示了copyOfRange方法的示例实现。 import java.util.Arrays; class Main { public static void main(String args[]) { int intArray[] = { 10,20,30,40,50 }; // to index is within the range int[] copyArray = Arrays.copyOfRange(intArray, 2, 6); System.out.println("Array copy with both index within the range: " + Arrays.toString(copyArray)); //to index is out of range int[] copy1 = Arrays.copyOfRange(intArray, 4, intArray.length + 3); System.out.println("Array copy with to index out of range: " + Arrays.toString(copy1)); } }输出: Java数组在内部实现了Cloneable接口,因此克隆Java数组很容易。您可以克隆一维数组和二维数组。克隆一维数组时,它会复制要复制值的数组元素。 另一方面,当您克隆二维或多维数组时,将进行元素的浅表复制,即仅复制引用。数组的克隆是通过数组提供的'Clone()'方法完成的。 克隆产生的一维数组的深层副本可以表示如下: 现在,让我们在Java程序中实现一维数组克隆。 class Main { public static void main(String args[]) { int num_Array[] = {5,10,15,20,25,30}; int clone_Array[] = num_Array.clone(); System.out.println("Original num_Array:"); for (int i = 0; i |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |