你知道java复制(拷贝)数组的方法都有哪些吗?下面要给大家讲到的就是使用copyOf()方法来实现的内容,一起来了解一下吧。
在java当中,实现数组复制分别有下面的四种方法:Arrays类的copyOf()方法、Arrays类的copyOfRange()方法、System类的arraycopy()方法、Object类的clone()方法;
下面的话就来给大家讲一下使用copyOf()方法。
使用copyOf()方法对数组进行复制
下面是Arrays类的copyOf()方法的语法格式:
Arrays.copyOf(dataType[] srcArray,int length);
在这当中,srcArray表示要进行复制的数组,length表示复制后的新数组长度。
使用copyOf()方法对数组进行复制的时候,默认从原数组的第一个元素(索引值为0)开始复制,目标数组的长度将为length。
假如,length大于srcArray.length,那么,目标数组中采用默认值填充;假如,length小于srcArray.length,那么,复制到第length个元素(索引值为length-1)即止。
注意一下了,假如,目标数组已经是存在的了,那么,将会被重构。
下面的话就来看一个简单的示例吧!
假设,一个数组当中保存了5个成绩,现在需要在一个新数组中保存这5个成绩,同时留3个空余的元素供后期开发使用。
使用Arrays类的CopyOf()方法完成数组复制:
import java.util.Arrays; public class Test19 { public static void main(String[] args) { // 定义长度为 5 的数组 int scores[] = new int[] { 57 , 81 , 68 , 75 , 91 }; // 输出原数组 System.out.println("原数组内容如下:"); // 循环遍历原数组 for (int i = 0; i < scores.length; i++) { // 将数组元素输出 System.out.print(scores[i] + "\t"); } // 定义一个新的数组,将 scores 数组中的 5 个元素复制过来 // 同时留 3 个内存空间供以后开发使用 int[] newScores = (int[]) Arrays.copyOf(scores, 8); System.out.println("\n复制的新数组内容如下:"); // 循环遍历复制后的新数组 for (int j = 0; j < newScores.length; j++) { // 将新数组的元素输出 System.out.print(newScores[j] + "\t"); } } }
因为原数组scores的长度为5,而要复制的新数组newScores的长度为8,所以的话,在将原数组中的5个元素复制完之后,会采用默认值填充剩余3个元素的内容。
由于,原数组scores的数据类型为int,而使用Arrays.copyOf(scores,8) 方法复制数组之后返回的是Object[] 类型,所以的话就需要将Object[]数据类型强制转换为int[]类型,与此同时,也正因为scores的数据类型为int,所以的话默认值为 0。
结果:
原数组内容如下: 57 81 68 75 91 复制的新数组内容如下: 57 81 68 75 91 0 0 0
以上的内容就为你介绍到这里了,更多的Java复制数组方法请继续关注奇Q工具网来进行了解吧,更多的java常见问题及解决方法可以为你分享解答。
推荐阅读: