How to get slice of a Primitive Array in Java

11 Dec, 2018
Given a Primitive Array, the task is to get a Slice of this array in Java, using start and ending index.
Examples:
Input: arr[] = {1, 2, 3, 4, 5}, startIndex = 2, endIndex = 4
Output: {3, 4, 5}

Input: arr[] = {1, 2, 3, 4, 5}, startIndex = 0, endIndex = 1
Output: {1, 2}

Method 1: Naive Method.Get the Array and the startIndex and the endIndex.Create and empty primitive array of size endIndex-startIndex.Copy the elements from startIndex to endIndex from the original array to the slice array.Return or print the slice of the array.Below is the implementation of the above approach:// Java program to Get a Slice// of a Primitive Array  import java.util.Arrays;  class GFG {    // Function to get slice of a primitive array in Java    public static int[] getSliceOfArray(int[] arr,                                      int start, int end)    {          // Get the slice of the Array        int[] slice = new int[end - start];          // Copy elements of arr to slice        for (int i = 0; i < slice.length; i++) {            slice[i] = arr[start + i];        }          // return the slice        return slice;    }    public static void main(String[] args)    {          // Get the array, startIndex and endIndex        int[] arr = { 1, 2, 3, 4, 5 };        int start = 2, end = 4;          // Get the slice of the array        int[] slice = getSliceOfArray(arr, start, end + 1);          // Print the slice of the array        System.out.println(Arrays.toString(slice));    }}Output:[3, 4, 5]

Get the Array and the startIndex and the endIndex.Create and empty primitive array of size endIndex-startIndex.Copy the elements from startIndex to endIndex from the original array to the slice array.Return or print the slice of the array.
Get the Array and the startIndex and the endIndex.
Create and empty primitive array of size endIndex-startIndex.
Copy the elements from startIndex to endIndex from the original array to the slice array.
Return or print the slice of the array.
Below is the implementation of the above approach:
// Java program to Get a Slice// of a Primitive Array  import java.util.Arrays;  class GFG {    // Function to get slice of a primitive array in Java    public static int[] getSliceOfArray(int[] arr,                                      int start, int end)    {          // Get the slice of the Array        int[] slice = new int[end - start];          // Copy elements of arr to slice        for (int i = 0; i < slice.length; i++) {            slice[i] = arr[start + i];        }          // return the slice        return slice;    }    public static void main(String[] args)    {          // Get the array, startIndex and endIndex        int[] arr = { 1, 2, 3, 4, 5 };        int start = 2, end = 4;          // Get the slice of the array        int[] slice = getSliceOfArray(arr, start, end + 1);          // Print the slice of the array        System.out.println(Arrays.toString(slice));    }}
[3, 4, 5]

Method 2: Using Arrays.copyOfRange() method.Get the Array and the startIndex and the endIndex.Get the slice using Arrays.copyOfRange() method.Return or print the slice of the array.Below is the implementation of the above approach:// Java program to Get a Slice// of a Primitive Array  import java.util.Arrays;  class GFG {    // Function to get slice of a primitive array in Java    public static int[] getSliceOfArray(int[] arr,                            int startIndex, int endIndex)    {          // Get the slice of the Array        int[] slice = Arrays                          .copyOfRange(                                // Source                              arr,                                // The Start index                              startIndex,                                // The end index                              endIndex);          // return the slice        return slice;    }    public static void main(String[] args)    {          // Get the array, startIndex and endIndex        int[] arr = { 1, 2, 3, 4, 5 };        int start = 2, end = 4;          // Get the slice of the array        int[] slice = getSliceOfArray(arr, start, end + 1);          // Print the slice of the array        System.out.println(Arrays.toString(slice));    }}Output:[3, 4, 5]

Get the Array and the startIndex and the endIndex.Get the slice using Arrays.copyOfRange() method.Return or print the slice of the array.
Get the Array and the startIndex and the endIndex.
Get the slice using Arrays.copyOfRange() method.
Return or print the slice of the array.
Below is the implementation of the above approach:
// Java program to Get a Slice// of a Primitive Array  import java.util.Arrays;  class GFG {    // Function to get slice of a primitive array in Java    public static int[] getSliceOfArray(int[] arr,                            int startIndex, int endIndex)    {          // Get the slice of the Array        int[] slice = Arrays                          .copyOfRange(                                // Source                              arr,                                // The Start index                              startIndex,                                // The end index                              endIndex);          // return the slice        return slice;    }    public static void main(String[] args)    {          // Get the array, startIndex and endIndex        int[] arr = { 1, 2, 3, 4, 5 };        int start = 2, end = 4;          // Get the slice of the array        int[] slice = getSliceOfArray(arr, start, end + 1);          // Print the slice of the array        System.out.println(Arrays.toString(slice));    }}
[3, 4, 5]

Method 3: Using Java 8 StreamsGet the Array and the startIndex and the endIndex.Convert the specified range of elements from the startIndex to endIndex to Primitive Stream using range() method.Map the specified elements from the original array using map() method.Convert the mapped array into array using toArray() method.Return or print the slice of the array.Below is the implementation of the above approach:// Java program to Get a Slice// of a Primitive Array  import java.util.Arrays;import java.util.stream.IntStream;  class GFG {      // Function to get slice of a primitive array in Java    public static int[] getSliceOfArray(int[] arr,                               int startIndex, int endIndex)    {          // Get the slice of the Array        int[] slice = IntStream                            // Convert the specified elements                          // of array into IntStream                          .range(startIndex, endIndex)                            // Lambda expression to get                          // the elements of IntStream                          .map(i -> arr[i])                            // Convert the mapped elements                          // into the slice array                          .toArray();          // return the slice        return slice;    }    public static void main(String[] args)    {          // Get the array, startIndex and endIndex        int[] arr = { 1, 2, 3, 4, 5 };        int start = 2, end = 4;          // Get the slice of the array        int[] slice = getSliceOfArray(arr, start, end + 1);          // Print the slice of the array        System.out.println(Arrays.toString(slice));    }}Output:[3, 4, 5]

Get the Array and the startIndex and the endIndex.Convert the specified range of elements from the startIndex to endIndex to Primitive Stream using range() method.Map the specified elements from the original array using map() method.Convert the mapped array into array using toArray() method.Return or print the slice of the array.
Get the Array and the startIndex and the endIndex.
Convert the specified range of elements from the startIndex to endIndex to Primitive Stream using range() method.
Map the specified elements from the original array using map() method.
Convert the mapped array into array using toArray() method.
Return or print the slice of the array.
Below is the implementation of the above approach:
// Java program to Get a Slice// of a Primitive Array  import java.util.Arrays;import java.util.stream.IntStream;  class GFG {      // Function to get slice of a primitive array in Java    public static int[] getSliceOfArray(int[] arr,                               int startIndex, int endIndex)    {          // Get the slice of the Array        int[] slice = IntStream                            // Convert the specified elements                          // of array into IntStream                          .range(startIndex, endIndex)                            // Lambda expression to get                          // the elements of IntStream                          .map(i -> arr[i])                            // Convert the mapped elements                          // into the slice array                          .toArray();          // return the slice        return slice;    }    public static void main(String[] args)    {          // Get the array, startIndex and endIndex        int[] arr = { 1, 2, 3, 4, 5 };        int start = 2, end = 4;          // Get the slice of the array        int[] slice = getSliceOfArray(arr, start, end + 1);          // Print the slice of the array        System.out.println(Arrays.toString(slice));    }}
[3, 4, 5]

Java-Array-Programs
Java-Arrays
Java
Java Programs
Java
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Object Oriented Programming (OOPs) Concept in Java
How to iterate any Map in Java
Interfaces in Java
HashMap in Java with Examples
Stream In Java
Initializing a List in Java
Java Programming Examples
Convert a String to Character Array in Java
Convert Double to Integer in Java
Implementing a Linked List in Java using Class