Open In App

Remove all Occurrences of an Element from Array in Java

Last Updated : 01 May, 2025
Comments
Improve
Suggest changes
Like Article
Like
Report

In Java, removing all occurences of a given element from an array can be done using different approaches that are,

  • Naive approach using array copy
  • Java 8 Streams
  • Using ArrayList.removeAll()
  • Using List.removeIf()

Problem Stament: Given an array and a key, the task is to remove all occurrences of the specified key from the array in Java.

Examples to Remove Elements Occurrences in Array:

Input: array = { 3, 9, 2, 3, 1, 7, 2, 3, 5 }, key = 3
Output: [9, 2, 1, 7, 2, 5]

Input: array = { 10, 20, 10, 30, 50, 10 }, key = 10
Output: [20, 30, 50]

Illustration: In this example, we will remove all occurrences of an element from an array using the Arrays.copyOf method.

Java
// Java program remove all occurrences 
// of an element from Array using naive method 
import java.util.Arrays; 

class Geeks
{ 

    // function to remove all occurrences 
    // of an element from an array 
    public static int[] removeElements(int[] a, int k) 
    { 
        // Move all other elements to beginning 
        int ind = 0; 
        
        for (int i=0; i<a.length; i++) 
            if (a[i] != k) 
                a[ind++] = a[i]; 

        // Create a copy of arr[] 
        return Arrays.copyOf(a, ind); 
    } 

    // Driver code 
    public static void main(String[] args) 
    { 
        int[] a = { 3, 9, 2, 3, 1, 7, 2, 3, 5 }; 
        int k = 3; 
        a = removeElements(a, k); 
        System.out.println(Arrays.toString(a)); 
    } 
} 

Output
[9, 2, 1, 7, 2, 5]

Complexity of the above method:

  • Time Complexity: O(n)
  • Space Complexity: O(n)

Java Program to Remove All Occurrences of an Element from Array

1. Using Java 8 Stream

Approach:

  • Get the array and the key.
  • Filter all elements of the list which is equal to a given key
  • Convert the list back to an array and return it.

Illustration: Here, we will use the Java 8 streams to remove all occurrences of an element from an array.

Java
// Java program remove all occurrences 
// of an element from Array using Stream
import java.util.Arrays;

public class Geeks
{
    public static void main(String[] args) {
        
        // Example array
        Integer[] a = { 3, 9, 2, 3, 1, 7, 2, 3, 5 }; 

        // Element to be removed
        int k = 3;

        // Remove all occurrences of the element using Java 8 Stream
        Integer[] ans = Arrays.stream(a)
        
                // Filter out the element to remove
                .filter(e -> e != k)  
                .toArray(Integer[]::new);           

        System.out.println(Arrays.toString(ans));
    }
}

Output
[9, 2, 1, 7, 2, 5]


2. Using Java ArrayList

Approach:

  • Get the array and the key.
  • Create an empty ArrayList.
  • Insert all elements from the array into the list except the specified key
  • Convert the list back to an array and return it.

Alternative Approach:

  • First, create a List of arrays.
  • Remove all elements of the array into the list that are the specified key.
  • Convert the list back to an array and return it.

Illustration: Using the ArrayList to remove all occurrences of an element from an array.

Java
// Java program remove all occurrences 
// of an element from Array using ArrayList 
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

// Driver Class
public class Geeks {
    
  	// Main Method
    public static void main(String[] args) {
        
        Integer[] a = { 3, 9, 2, 3, 1, 7, 2, 3, 5 }; 

        // Element to be removed
        Integer k = 3;

        // Convert array to ArrayList
        List<Integer> l = new ArrayList<>(Arrays.asList(a));

        // Remove all occurrences of the element
        l.removeAll(Arrays.asList(k));

        // Convert ArrayList back to array
        Integer[] newArr = l.toArray(new Integer[0]);

        // Print the result
        System.out.println(Arrays.toString(newArr));
    }
}

Output
[9, 2, 1, 7, 2, 5]


3. Using List.removeAll()

Approach:

  • First, create a list from the array.
  • Insert all elements of the array into the list
  • Remove all elements that match the given key.
  • Convert the list back to an array and return it.

Illustration: Using the List.removeAll() to remove all occurrences of an element from an array.

Java
// Java program remove all occurrences 
// of an element from Array using List.removeAll 
import java.util.*;

// Driver Class
public class Geeks
{
    // Main Method
  	public static void main(String[] args) {
  	    
        // Example array
        Integer[] a = { 3, 9, 2, 3, 1, 7, 2, 3, 5 };

        // Element to be removed
        Integer k = 3;

        // Convert array to List (using ArrayList to allow modification)
        List<Integer> l = new ArrayList<>(Arrays.asList(a));

        // Remove all occurrences of the element
        l.removeAll(Arrays.asList(k));

        // Convert List back to array
        Integer[] ans = l.toArray(new Integer[0]);

        // Print the result
        System.out.println(Arrays.toString(ans));
    }
}

Output
[9, 2, 1, 7, 2, 5]


4. Using List.removeIf()

Approach:

  • First Create an empty List of Array.
  • Insert all elements of the array into the list.
  • Remove all those elements which is you want to remove using the equals() method.
  • Convert the list back to an array and return it.

Illustration: Using the List.removeIf() to remove all occurrences of an element from an array.

Java
// Java program remove all occurrences 
// of an element from Array using removeIf()
import java.util.*;

// Driver Class
public class Geeks
{
  	// Main Method
    public static void main(String[] args) {
        
        // Example array
        Integer[] a = { 3, 9, 2, 3, 1, 7, 2, 3, 5 };

        // Element to be removed
        int k = 3;

        // Convert array to List (using ArrayList to allow modification)
        List<Integer> l = new ArrayList<>(Arrays.asList(a));

        // Remove all occurrences using removeIf()
        l.removeIf(e -> e == k);

        // Convert List back to array
        Integer[] ans = l.toArray(new Integer[0]);

        System.out.println(Arrays.toString(ans));
    }
}

Output
[9, 2, 1, 7, 2, 5]


Next Article

Similar Reads