Java.util.Arrays 类

java.util.Arrays.copyOfRange()方法用于将指定数组的指定范围复制到新的数组中大批。范围(from)的初始索引必须位于零和original.length之间(含)。范围的最终索引 (to) 必须大于或等于 from,也可能大于 Original.length,在这种情况下,会将 null 放置在索引大于或等于原始索引的副本的所有元素中。长度-从.返回数组的长度将为 to - from。结果数组属于 newType 类。

语法

public static <T,U> T[] copyOfRange(U[] original, int from, int to, 
                                    Class<? extends T[]> newType)

这里,U 是原始数组中对象的类,T 是返回数组中对象的类.

参数

原始 指定要从中复制范围的数组。
from 指定要复制的范围的初始索引(含)。
to 指定要复制的范围的最终索引,不包括。
newType 指定要返回的副本的类。

返回值

返回一个新数组,其中包含原始数组中的指定范围,并用空值截断或填充以获得所需的长度。

异常

  • 如果来自 < 0 或 > Original.length,则抛出 ArrayIndexOutOfBoundsException
  • 如果来自 >,则抛出 IllegalArgumentException
  • 如果原始元素为 null,则抛出 NullPointerException
  • 如果从原始元素复制的元素不为 null,则抛出 ArrayStoreException可以存储在类 newType 的数组中的运行时类型。

示例:

在下面的示例中,java.lang. util.Arrays.copyOfRange() 方法返回一个新数组,其中包含原始数组中的指定范围,并进行截断或用 null 填充以获得所需的长度。

import java.util.*;

public class MyClass {
  public static void main(String[] args) {
    //创建一个整数数组
    Integer Arr1[] = {10, 5, 25};

    //将Arr1从索引1到5复制到Arr2
    Number[] Arr2 = Arrays.copyOfRange(Arr1, 1, 5, Number[].class);

    //打印Arr1
    System.out.print("Arr1 contains:"); 
    for(Integer i: Arr1)
      System.out.print(" " + i);
      
    //打印Arr2
    System.out.print("\nArr2 contains:"); 
    for(Number i: Arr2)
      System.out.print(" " + i);  
  }
}

上述代码的输出将是:

Arr1 contains: 10 5 25
Arr2 contains: 5 25 null null