Arrays.copyOfRange方法可以实现对一个数组一定范围内元素的拷贝。其函数原型为:
static type copyOfRange(type[] a, int start, int end)
参数:
a 类型为8大基本类型的数组。
start 起始下标(包含这个值)。
end 终止下标(不包含这个值)。
使用方法如:
int [] s1 = {1,2,3,4,5};
int [] s2 = Arrays.copyOfRange(s1, 2, 3);
System.out.println(Arrays.toString(s2));
将输出:[3,4]
但是,不能使用这个方法拷贝到一个数组的最后一位。
如:
int [] s1 = {1,2,3,4,5};
int [] s2 = Arrays.copyOfRange(s1, 2, 5);
System.out.println(Arrays.toString(s2));
这段代码中,原意是要将s1的下标2-4的元素拷贝到s2,设想中输出将会是:[3,4,5]。
但实际运行时会发生数组越界的错误,这是因为拷贝数组的最后一位时访问了“5”这个下标,显然导致了错误的发生。