Java Arrays copyOfRange() Method



Description

The Java Arrays copyOfRange(int[] original, int from, int to) method copies the specified range of the specified array into a new array.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 0 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.

Declaration

Following is the declaration for java.util.Arrays.copyOfRange() method

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

Parameters

  • original − This is the array from which a range is to to be copied.

  • from − This is the initial index of the range to be copied, inclusive.

  • to − This is the final index of the range to be copied, exclusive.

Return Value

This method returns a new array containing the specified range from the original array, truncated or padded with zeros to obtain the required length.

Exception

  • ArrayIndexOutOfBoundsException − If from < 0 or from > original.length()

  • IllegalArgumentException − If from > to.

  • NullPointerException − If original is null.

Copying an Array of ints to a Same Sized Array Example

The following example shows the usage of Java Arrays copyOfRange() method. First, we've created an array of ints. We've printed them. A copy of array with same size is created using copyOfRange() method and printed.

package com.tutorialspoint;

import java.util.Arrays;

public class ArrayDemo {
   public static void main(String[] args) {

      int[] intArr = { 10, 20, 30, 13 };

      System.out.print("Int Array: [");
      for (int i = 0; i < intArr.length; i++) {
         System.out.print(intArr[i] + " ");
      }

      System.out.print("]\nCopied Array: \n");

      // Create copy of the array of same size
      int[] intArrCopy = Arrays.copyOfRange(intArr, 0, 4);
     
      System.out.print("Int Array: [");
      for (int i = 0; i < intArrCopy.length; i++) {
         System.out.print(intArrCopy[i] + " ");
      }
      System.out.print("]");
   }
}

Output

Let us compile and run the above program, this will produce the following result −

Int Array: [10, 20, 30, 13 ]
Copied Array: 
Int Array: [10, 20, 30, 13 ]

Copying an Array of ints to a Higher Sized Array Example

The following example shows the usage of Java Arrays copyOfRange() method. First, we've created an array of ints. We've printed them. A copy of array with higher size is created using copyOfRange() method and printed with default values appended.

package com.tutorialspoint;

import java.util.Arrays;

public class ArrayDemo {
   public static void main(String[] args) {

      int[] intArr = { 10, 20, 30, 13 };
      System.out.print("Int Array: [");
      for (int i = 0; i < intArr.length; i++) {
         System.out.print(intArr[i] + " ");
      }
      System.out.print("]\nCopied Arrays: \n");

      // Create copy of the array of greater size
      int[] intArrCopy = Arrays.copyOfRange(intArr, 1, 6);

      System.out.print("Int Array: [");
      for (int i = 0; i < intArrCopy.length; i++) {
         System.out.print(intArrCopy[i] + " ");
      }
      System.out.print("]");
   }
}

Output

Let us compile and run the above program, this will produce the following result −

Int Array: [10 20 30 13 ]
Copied Arrays: 
Int Array: [20 30 13 0 0 ]

Copying an Array of ints to a Lower Sized Array Example

The following example shows the usage of Java Arrays copyOfRange() method. First, we've created an array of ints. We've printed them. A copy of array with lower size is created using copyOfRange() method and printed.

package com.tutorialspoint;

import java.util.Arrays;

public class ArrayDemo {
   public static void main(String[] args) {

      int[] intArr = { 10, 20, 30, 13 };

      System.out.print("Int Array: [");
      for (int i = 0; i < intArr.length; i++) {
         System.out.print(intArr[i] + " ");
      }
      System.out.print("]\nCopied Arrays: \n");

      // Create copy of the array of lesser size
      int[] intArrCopy = Arrays.copyOfRange(intArr, 1, 3);

      System.out.print("Int Array: [");
      for (int i = 0; i < intArrCopy.length; i++) {
         System.out.print(intArrCopy[i] + " ");
      }
      System.out.print("]");
   }
}

Output

Let us compile and run the above program, this will produce the following result −

Int Array: [10 20 30 13 ]
Copied Arrays: 
Int Array: [20 30 ]
java_util_arrays.htm
Advertisements