Java中数组拷贝的方法有哪些

  介绍

这期内容当中小编将会给大家带来有关Java中数组拷贝的方法有哪些,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

在Java中实现数组复制分别有以下4种方法:

<李>

数组类的copyOf()方法

<李>

数组类的copyOfRange()方法

<李>

系统类的arraycopy()方法

<李>

对象类的克隆()方法

下面来详细介绍这4种方法的使用。

使用copyOf()方法和copyOfRange()方法

数组类的copyOf()方法与copyOfRange()方法都可实现对数组的复制.copyOf()方法是复制数组至指定长度,copyOfRange()方法则将指定数组的指定长度复制到一个新数组中。

1。使用copyOf()方法对数组进行复制

数组类的copyOf()方法的语法格式如下:

Arrays.copyOf(数据类型[],srcArray, int 长度),

其中,srcArray表示要进行复制的数组,长度表示复制后的新数组的长度。

使用这种方法复制数组时,默认从原数组的第一个元素(索引值为0)开始复制,目标数组的长度将为长度。如果长度大于srcArray。长度,则目标数组中采用默认值填充,如果长度小于srcArray。长度的长度,则复制到第个元素(索引值为长度为1)即止。

注意:目标数组如果已经存在,将会被重构。

1例

假设有一个数组中保存了5个成绩,现在需要在一个新数组中保存这5个成绩,同时留3个空余的元素供后期开发使用。

使用数组类的CopyOf()方法完成数组复制的代码如下:

import  java.util.Arrays;   public  class  Test19 {   public 才能;static  void  main (String [], args), {   ,,,//,定义长度为,5,的数组   ,,,int 分数[],=,new  int [] {57、81、68、75、91};   ,,,//,输出原数组   ,,,System.out.println(“原数组内容如下:“);   ,,,//,循环遍历原数组   ,,,(int 我=0;i

在上述代码中,由于原数的组分数的长度为5,而要复制的新数组newScores的长度为8,因此在将原数组中的5个元素复制完之后,会采用默认值填充剩余3个元素的内容。

因为原数的组分数的数据类型为int,而使用Arrays.copyOf(分数,8)方法复制数组之后返回的是对象[]类型,因此需要将对象[]数据类型强制转换为int[]类型。同时,也正因为分数的数据类型为int,因此默认值为0。

运行的结果如下所示。
原数组内容如下:
57个,,,81,,,68,,,75,,,91年,,
复制的新数组内容如下:
57个,,,81,,,68,,,75,,,91,,,0,,,0,,,0

2。使用CopyOfRange()方法对数组进行复制

数组类的CopyOfRange()方法是另一种复制数组的方法,其语法形式如下:

Arrays.copyOfRange(数据类型[],srcArray, int  startIndex, int  endIndex)

其中:

<李>

srcArray表示原数组。

<李>

startIndex表示开始复制的起始索引,目标数组中将包含起始索引对应的元素,另外,startIndex必须在0到srcArray。长度之间。

<李>

endIndex表示终止索引,目标数组中将不包含终止索引对应的元素,endIndex必须大于等于startIndex,可以大于srcArray。长度,如果大于srcArray。长度,则目标数组中使用默认值填充。

注意:目标数组如果已经存在,将会被重构。

2例

假设有一个名称为分数的数组其元素为8个,现在需要定义一个名称为newScores的新数组。新数组的元素为分数数组的前5个元素,并且顺序不变。

使用数组类copyOfRange()方法完成数组复制的代码如下:

public  class  Test20  {   public 才能;static  void  main (String [], args), {   ,,,//,定义长度为8的数组   ,,,int 分数[],=,new  int[],{, 57岁,81,68,75,91,66,75,84,};   ,,,System.out.println(“原数组内容如下:“);   ,,,//,循环遍历原数组   ,,,for  (int 小姐:=,0;,小姐:& lt;, scores.length;,我+ +),{   ,,,,,System.out.print(分数(我),+,“\ t");   ,,,}   ,,,//,复制原数组的前5个元素到newScores数组中   ,,,int  newScores [],=, (int []), Arrays.copyOfRange(分数,,0,,5);   ,,,System.out.println (“\ n复制的新数组内容如下:“);   ,,,//,循环遍历目标数组,即复制后的新数组   ,,,for  (int  j =, 0;, j  & lt;, newScores.length;, j + +), {   ,,,,,System.out.print (newScores [j], +,“\ t");   ,,,}   ,,}   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

Java中数组拷贝的方法有哪些