复制数组

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

(1)copyOf()方法

该方法提供了多种重载形式,用于满足不同类型数组的复制。 语法如下:

copyOf(arr,int newlength)
  • arr:要进行复制的数组。
  • newlength:int型常量,指复制后的新数组的长度。如果新数组的 长度大于数组arr的长度,则用0填充(根据复制数组的类型来决定填充 的值,整型数组用0填充,char型数组则使用null来填充);如果复制后 的数组长度小于数组arr的长度,则会从数组arr的第一个元素开始截取 至满足新数组长度为止。

【例】在项目中创建类Cope,在主方法中创建一维数组,实现 将此数组复制得到一个长度为5的新数组,并将新数组输出。

import java.util.*;

public class Cope { // 创建类
	public static void main(String[] args) { // 主方法
		int arr[] = new int[] { 23, 42, 12, }; // 定义数组
		int newarr[] = Arrays.copyOf(arr, 5); // 复制数组arr
		for (int i = 0; i < newarr.length; i++) { // 循环变量复制后的新数组
			System.out.println(newarr[i]); // 将新数组输出
		}
	}
}
例的运行结果
运行结果如图所示。

(2)copyOfRange()方法

该方法同样提供了多种重载形式。 语法如下:

copyOfRange(arr,int formIndex,int toIndex)
  • arr:要进行复制的数组对象。
  • formIndex:指定开始复制数组的索引位置。formIndex必须在0至 整个数组的长度之间。新数组包括索引是formIndex的元素。
  • toIndex:要复制范围的最后索引位置。可大于数组arr的长度。新 数组不包括索引是toIndex的元素。

【例】在项目中创建类Repeat,在主方法中创建一维数组,并 将数组中索引位置是0~3的元素复制到新数组中,最后将新数组输出。

import java.util.*;

public class Repeat { // 创建类
	public static void main(String[] args) { // 主方法
		int arr[] = new int[] { 23, 42, 12, 84, 10 }; // 定义数组
		int newarr[] = Arrays.copyOfRange(arr, 0, 3); // 复制数组
		for (int i = 0; i < newarr.length; i++) { // 循环遍历复制后的新数组
			System.out.println(newarr[i]); // 将新数组中的每个元素输出
		}
	}
}
运行结果如图所示。
运行结果如图所示。

发表评论