Java Utility Library

Java Arrays - copyOfRange() Method



The java.util.Arrays.copyOfRange() method is used to copy the specified range of the specified array into a new array. The initial index of the range (from) must lie between zero and original.length, inclusive. The final index of the range (to), which must be greater than or equal to from, may be greater than original.length, in which case null is placed in all elements of the copy whose index is greater than or equal to original.length - from. The length of the returned array will be to - from.

Syntax

public static <T> T[] copyOfRange(T[] original, 
                                  int from, int to)

Here, T is the class of the objects in the array.


Parameters

original Specify the array from which a range is to be copied.
from Specify the initial index of the range to be copied, inclusive.
to Specify the final index of the range to be copied, exclusive.

Return Value

Returns a new array containing the specified range from the original array, truncated or padded with nulls to obtain the required length.

Exception

  • Throws ArrayIndexOutOfBoundsException, if from < 0 or from > original.length.
  • Throws IllegalArgumentException, if from > to.
  • Throws NullPointerException, if original is null.

Example:

In the example below, the java.util.Arrays.copyOfRange() method returns a new array containing the specified range from the original array, truncated or padded with nulls to obtain the required length.

import java.util.*;

public class MyClass {
  public static void main(String[] args) {
    //creating a byte array
    byte Arr1[] = {10, 5, 25};

    //copy Arr1 into Arr2 from index 1 to 5
    Object Arr2 = Arrays.copyOfRange(Arr1, 1, 5);

    //cast Arr2 as byte into Arr3
    //nulls are converted into zero
    byte Arr3[] = (byte[])Arr2;

    //printing Arr1
    System.out.print("Arr1 contains:"); 
    for(byte i: Arr1)
      System.out.print(" " + i);
      
    //printing Arr3
    System.out.print("\nArr3 contains:"); 
    for(byte i: Arr3)
      System.out.print(" " + i);  
  }
}

The output of the above code will be:

Arr1 contains: 10 5 25
Arr3 contains: 5 25 0 0

❮ Java.util - Arrays