A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://www.geeksforgeeks.org/java/java-util-arrays-copyofrange-java/ below:

Arrays.copyOfRange() in Java with Examples

Arrays.copyOfRange() in Java with Examples

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.

Java
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));
    }
}

Output
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: 

Examples of Arrays.copyOfRange() in Java

Now, let's understand the working of Arrays.copyOfRange() method with two examples.

Using Arrays.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); 
    }
}

Output
3  4  5  6  
5  6  7  0  0  0  
Using 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() + "  ");
        }
    }
}

Output
40   geek4  50   geek5  
20   geek2  30   geek3  
copyOf vs copyOfRange

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