Java.util.Arrays.copyOfRange() 方法
描述
java.util.Arrays.copyOfRange(U[] original, int from, int to, Class<? extends T[]> newType) 方法将指定数组的指定范围复制到一个新数组中。 范围 (from) 的初始索引必须介于零和 original.length 之间,包括两者。 original[from] 的值被放入副本的初始元素中(除非 from == original.length 或 from == to)。
原始数组中后续元素的值被放入副本中的后续元素中。 范围(to)的最终索引,必须大于或等于 from,可能大于 original.length,在这种情况下,null 放置在索引大于或等于 original 的副本的所有元素中。 长度 - 从。 返回数组的长度将是 to - from。 结果数组属于 newType 类。
声明
以下是 java.util.Arrays.copyOfRange() 方法的声明
public static <T,U> T[] copyOfRange(U[] original, int from, int to, Class<? extends T[]> newType)
参数
original − 这是要从中复制范围的数组。
from − 这是要复制的范围的初始索引,包括在内。
to − 这是要复制的范围的最终索引,不包括在内。
newType − 要返回的副本的类
返回值
此方法从原始数组返回一个包含指定范围的新数组,截断或填充空值以获得所需的长度
异常
ArrayIndexOutOfBoundsException − 如果 from < 0 或 from > original.length()
IllegalArgumentException − 如果 from > to
NullPointerException − 如果 original 为 null。
ArrayStoreException − 如果从原始元素复制的元素不是可以存储在 newType 类数组中的运行时类型。
示例
下面的例子展示了 java.util.Arrays.copyOfRange() 方法的使用。
package com.tutorialspoint; import java.util.Arrays; public class ArrayDemo { public static void main(String[] args) { // intializing an array arr1 Short arr1[] = new Short[]{15, 10, 45}; // printing the array System.out.println("Printing 1st array:"); for (int i = 0; i < arr1.length; i++) { System.out.println(arr1[i]); } // copying array arr1 to arr2 as Number with range of index from 1 to 3 Number[] arr2 = Arrays.copyOfRange(arr1, 1, 3, Number[].class); // printing the array arr2, which is a Number array System.out.println("Printing new array:"); for (int i = 0; i < arr2.length; i++) { System.out.println(arr2[i]); } } }
让我们编译并运行上面的程序,这将产生以下结果 −
Printing 1st array: 15 10 45 Printing new array: 10 45