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