Last Updated : 11 Nov, 2024
Arrays copyOfRange()
method is used to create a new array by copying a specified range of elements from an existing array. It provides a way to copy a subset of elements between two indices by creating a new array of the same type.
Below is a simple example that uses Arrays.copyOfRange()
method to copy a specified range of elements from an existing array.
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
// Original array
int[] arr1 = {10, 20, 30, 40,};
// Copy elements from index 1 to 3 (exclusive)
int[] arr2 = Arrays.copyOfRange(arr1, 1, 3);
System.out.println("Copied Array: " + Arrays.toString(arr2));
}
}
Copied Array: [20, 30]Syntax of Arrays.copyOfRange() method
public static int[] copyOfRange(int[] original_array, int from_index, int to_index)
Parameters:
Return Type:
Exceptions:
Now, let's understand the working of Arrays.copyOfRange() method with two examples.
UsingArrays.copyOfRange()
with Integer Array
This method efficiently copies a specified range of elements from an array. This automatically handles out-of-range indices by filling missing elements with default values i.e. 0 for integers.
Java
// Java program to illustrate copyOfRange() method
import java.util.Arrays;
class GFG {
public static void main(String args[]) {
int arr1[] = { 1, 2, 3, 4, 5, 6, 7 };
// Copying elements within range
int[] arr2 = Arrays.copyOfRange(arr1, 2, 6);
for (int i : arr2)
System.out.print(i + " ");
System.out.println();
// Copying with out-of-range index (fills with zeroes)
int[] arr3 = Arrays.copyOfRange(arr1, 4, arr1.length + 3);
for (int i : arr3)
System.out.print(i + " ");
// Uncomment to see exceptions:
// IllegalArgumentException
// int[] arr4 = Arrays.copyOfRange(arr1, 5, 3);
// ArrayIndexOutOfBoundsException
// int[] arr5 = Arrays.copyOfRange(arr1, 10, arr1.length + 5);
}
}
3 4 5 6 5 6 7 0 0 0Using
Arrays.copyOfRange()
with Custom Objects
This method enables easy way to copy a subset of custom objects by reducing the need of manual iteration. This also supports type safety by specifying the target class type for object arrays.
Java
// Java program to illustrate copyOfRange() method
import java.util.Arrays;
class GFG {
static class Employee {
int i;
String n;
// constructor
public Employee(int i, String n)
{
this.i = i;
this.n = n;
}
// Override toString()
public String toString()
{
return i + " " + n;
}
}
public static void main(String args[]) {
Employee[] e = { new Employee(10, "geek1"),
new Employee(20, "geek2"),
new Employee(30, "geek3"),
new Employee(40, "geek4"),
new Employee(50, "geek5") };
// Copying range from index 3 to 5 in E array
Employee[] c = Arrays.copyOfRange(e, 3, 5);
for (Employee e1 : c)
System.out.print(e1.toString() + " ");
System.out.println();
// Copying Employee array to Object array
Object[] o = Arrays.copyOfRange(e, 1, 3, Object[].class);
// Uncommenting the following line would throw an error
// Number[] n = Arrays.copyOfRange(e, 1, 3, Number[].class);
for (Object e1 : o) {
System.out.print(e1.toString() + " ");
}
}
}
40 geek4 50 geek5 20 geek2 30 geek3copyOf vs copyOfRange
copyOfRange()
: This method copies a specific range of elements from the original array, defined by a start index (inclusive) and an end index (exclusive).RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4