Java ArrayDeque removeIf() Method with Examples



Description

The java ArrayDeque removeIf() method retrieves and removes all the elements of this deque that satisfy the given predicate. In case of exception, the exception is relayed to the caller.

Declaration

Following is the declaration for java.util.ArrayDeque.removeIf(filter) method

public boolean removeIf​(Predicate<? super E> filter)

Parameters

filter − a predicate which returns true for elements to be removed.

Return Value

true if any elements were removed.

Exception

NullPointerException − if the specified filter is null.

Example #1

The following example shows the usage of Java ArrayDeque removeIf(filter) method with Integers. We're creating an ArrayDeque of Integers, adding some elements, print it and then use removeIf(filter) method to remove even numbers. As ArrayDeque is modified it is printed to check if even numbers are removed or not.

package com.tutorialspoint;

import java.util.ArrayDeque;

public class ArrayDequeDemo {
   public static void main(String[] args) {
      
      // create an empty array deque
      ArrayDeque<Integer> deque = new ArrayDeque<>();

      // use add() method to add elements in the deque
      deque.add(1);
      deque.add(2);
      deque.add(3);
      deque.add(4);
      deque.add(5);	  

      // let us print all the elements available in deque
      System.out.println("ArrayDeque = " + deque);

      // it will remove even numbers from the deque
      deque.removeIf(i -> i%2 == 0);
	  
      // let us print all the elements available in deque again
      System.out.println("ArrayDeque = " + deque);
   }
}

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

ArrayDeque = [1, 2, 3, 4, 5]
ArrayDeque = [1, 3, 5]

Example #2

The following example shows the usage of Java ArrayDeque removeIf(filter) method with Strings. We're creating an ArrayDeque of String, adding some elements, print it and then use removeIf(filter) method to remove string with one character only. As ArrayDeque is modified it is printed to check if such elements are removed or not.

package com.tutorialspoint;

import java.util.ArrayDeque;

public class ArrayDequeDemo {
   public static void main(String[] args) {
      
      // create an empty array deque
      ArrayDeque<String> deque = new ArrayDeque<>();

      // use add() method to add elements in the deque
      deque.add("A");
      deque.add("BB");
      deque.add("CC");
      deque.add("D");        

      // let us print all the elements available in deque
      System.out.println("ArrayDeque = " + deque);

      // it will remove single length string
      deque.removeIf(i -> i.length() == 1);
	  
      // let us print all the elements available in deque again
      System.out.println("ArrayDeque = " + deque);
   }
}

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

ArrayDeque = [A, BB, CC, D]
ArrayDeque = [BB, CC]

Example #3

The following example shows the usage of Java ArrayDeque removeIf(filter) method with Student objects. We're creating an ArrayDeque of Student, adding some elements, print it and then use removeIf(filter) method to get the a particular student removed. As ArrayDeque is modified it is printed to check if that student object is removed or not.

package com.tutorialspoint;

import java.util.ArrayDeque;

public class ArrayDequeDemo {
   public static void main(String[] args) {
      
      // create an empty array deque
      ArrayDeque<Student> deque = new ArrayDeque<>();

      // use add() method to add elements in the deque
      deque.add(new Student(1, "Julie"));
      deque.add(new Student(2, "Robert"));
      deque.add(new Student(3, "Adam"));       

      // let us print all the elements available in deque
      System.out.println("ArrayDeque = " + deque);

      // it will remove if roll no is 2
      deque.removeIf(i -> i.rollNo == 2);
	  
      // let us print all the elements available in deque again
      System.out.println("ArrayDeque = " + deque);
   }
}
class Student {
   public int rollNo;
   public String name;

   Student(int rollNo, String name){
      this.rollNo = rollNo;
      this.name = name;
   }

   @Override
   public String toString() {
      return "[ " + this.rollNo + ", " + this.name + " ]";
   }
   
   @Override
   public boolean equals(Object obj) {
      Student s = (Student)obj;
      return this.rollNo == s.rollNo && this.name.equalsIgnoreCase(s.name);
   }
}

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

ArrayDeque = [[ 1, Julie ], [ 2, Robert ], [ 3, Adam ]]
ArrayDeque = [[ 1, Julie ], [ 3, Adam ]]
java_util_arraydeque.htm
Advertisements