Java Arrays.copyOf()
方法
原文:https://www.studytonight.com/java-util/java-arrays-copyof-method
在本教程中,我们将学习 Java 中的copyOf()
方法。该方法属于位于java.util
包的Arrays
类。它用于从现有数组创建新数组或将一个数组复制到另一个数组。
句法
这是copyOf()
方法的语法。此方法接收具有新数组长度的现有数组,并返回具有旧数组值的新数组。
public static datatype[] copyOf(datatype[] arr,int newLength)
重载方法列表
此表包含 Arrays 类的copyOf()
方法的所有重载变体。
|
方法
描述 | |
---|---|
静态布尔[] copyOf(布尔[] original,int newLength) | 此方法复制指定的数组,用 false 截断或填充(如有必要),使副本具有指定的长度。 |
静态字节[] copyOf(字节[] original,int newLength) | 此方法复制指定的数组,截断或填充零(如有必要),使副本具有指定的长度。 |
静态 char[] copyOf(char[] original,int newLength) | 此方法复制指定的数组,用空字符截断或填充(如有必要),使副本具有指定的长度。 |
静态 double[]copy of(double[]original,int newLength) | 此方法复制指定的数组,截断或填充零(如有必要),使副本具有指定的长度。 |
静态 float[] copyOf(float[] original,int newLength) | 此方法复制指定的数组,截断或填充零(如有必要),使副本具有指定的长度。 |
静态 int[] copyOf(int[] original,int newLength) | 此方法复制指定的数组,截断或填充零(如有必要),使副本具有指定的长度。 |
静长[] copyOf(长[] original,int newLength) | 此方法复制指定的数组,截断或填充零(如有必要),使副本具有指定的长度。 |
静态短[] copyOf(短[]origin,int newLength) | 此方法复制指定的数组,截断或填充零(如有必要),使副本具有指定的长度。 |
静态< T > T[]副本(T[]原件,int newLength) | 此方法复制指定的数组,用空值截断或填充(如有必要),使副本具有指定的长度。 |
静< T,?U > T【】文案(U【】原文,**int newLength,Class <?扩展 T[] >新类型)** | 此方法复制指定的数组,用空值截断或填充(如有必要),使副本具有指定的长度。 |
实现 copyOf()方法的示例
在下面的例子中,我们正在从长度为 4 的现有数组arr
创建一个新数组new_arry
。从这个程序的输出中,我们可以比较这两个数组。数组中的所有四个元素都按原样复制到新数组中。这表明我们可以使用copyOf()
方法从现有数组创建不同大小的新数组。
import java.util.Arrays;
public class StudyTonight
{
public static void main(String[] args)
{
int[] arr = new int[] {5, 6, 7, 10, 17};
System.out.println("Original Array");
for(int num:arr)
{
System.out.print(num+" ");
}
int[] new_arr = Arrays.copyOf(arr, 4);
System.out.println("\nNew Array");
for(int num:new_arr)
{
System.out.print(num+" ");
}
}
}
原阵 5 6 7 10 17 新阵 5 6 7 10
示例:将数组复制到更大的数组中
在下面给出的代码中,我们可以清楚地看到现有数组的数组长度为5
,新数组的长度为10
,这意味着新数组缺少新数组元素的5
值。在这种情况下,剩余的元素将被指定为0
。
import java.util.Arrays;
public class StudyTonight
{
public static void main(String[] args)
{
int[] arr = new int[] {5, 6, 7, 10, 17};
System.out.println("Original Array");
for(int num:arr)
{
System.out.print(num+" ");
}
int[] new_arr = Arrays.copyOf(arr, 10);
System.out.println("\nNew Array");
for(int num:new_arr)
{
System.out.print(num+" ");
}
}
}
原阵 5 6 7 10 17 新阵 5 6 7 10 17 0 0 0 0 0
示例:复制不同类型的数组
在本例中,我们实现了 copy()方法的所有其他变体,以检查它们如何与其他变体一起工作
import java.util.Arrays;
public class StudyTonight
{
public static void main(String[] args)
{
//Example of static boolean[] copyOf(boolean[] original, int newLength)
boolean[] array1={true, false, true, false, false, true};
boolean[] new_arr1=Arrays.copyOf(array1, 6);
System.out.println("New Boolean Array: "+Arrays.toString(new_arr1));
//Example of static byte[] copyOf(byte[] original, int newLength)
byte[] array2={4, 1, 8, 2, 2, 3, 16, 4, 4};
byte[] new_arr2=Arrays.copyOf(array2, 7);
System.out.println(Arrays.toString(new_arr2));
//Example of static char[] copyOf(char[] original, int newLength)
char[] array3={'a', 'e', 'i', 'o', 'u'};
char[] new_arr3=Arrays.copyOf(array3, 10);
System.out.println(Arrays.toString(new_arr3));
//Example of static double[] copyOf(double[] original, int newLength)
double[] array4={12, 3, 17, 5, 8, 17, 2, 37};
double[] new_arr4=Arrays.copyOf(array4, 10);
System.out.println(Arrays.toString(new_arr4));
//Example of static float[] copyOf(float[] original, int newLength)
float[] array5={4.12f, 7.3f, 8.17f, 1.5f, 7.8f, 4.17f, 3.2f, 6.37f};
float[] new_arr5=Arrays.copyOf(array5, 7);
System.out.println(Arrays.toString(new_arr5));
//Example of static int[] copyOf(int[] original, int newLength)
int[] array6 ={5, 6, 7, 10, 17};
int[] new_arr6=Arrays.copyOf(array6, 5);
System.out.println(Arrays.toString(new_arr6));
//Example of static long[] copyOf(long[] original, int newLength)
long[] array7={4,54,56,584,51,84,5,28,33,9};
long[] new_arr7=Arrays.copyOf(array7, 5);
System.out.println(Arrays.toString(new_arr7));
//Example of static short[] copyOf(short[] original, int newLength)
short[] array8={10, 8, 6, 4, 2, 0};
short[] new_arr8=Arrays.copyOf(array8, 5);
System.out.println(Arrays.toString(new_arr8));
}
}
新布尔数组:【真、假、真、假、真】 【4、1、8、2、2、3、16】 【a、e、I、o、u】 【12.0、3.0、17.0、5.0、8.0、17.0、2.0、37.0、0.0、0.0】 【4.12、7.3、8.17、1.5、7.8、
结论:
在本教程中,我们学习了如何使用copyOf()
方法使用现有数组创建新数组。新数组元素将从旧数组的现有值中赋值。如果新数组的长度大于旧数组的长度,在这种情况下,所有剩余的元素将被赋为零。