LinkedBlockingQueue remove() method in Java

The remove(Object obj) method of LinkedBlockingQueue removes only one instance of the given Object, passed as parameter, from this LinkedBlockingQueue if it is present. It removes an element e such that obj.equals(e) and if this queue contains one or more instance of element e. This method returns true if this queue contained the element which is now removed from LinkedBlockingQueue.

Syntax:

public boolean remove(Object o)

Parameter: This method accepts a mandatory parameter obj which is the element to be removed from LinkedBlockingQueue.



Return Value: This method returns true if this queue contained the element which is now removed from LinkedBlockingQueue. If the LinkedBlockingQueue did not contain the element obj, then this method returns false.

Below programs illustrates remove(Object obj) method of LinkedBlockingQueue class:

Program 1: Try to remove some element from LinkedBlockingQueue using remove(Object obj) and print result.

filter_none

edit
close

play_arrow

link
brightness_4
code

// Java Program Demonstrate  remove(Object obj)
// method of LinkedBlockingQueue
  
import java.util.concurrent.LinkedBlockingQueue;
  
public class GFG {
  
    public static void main(String[] args)
        throws InterruptedException
    {
        // define capacity of LinkedBlockingQueue
        int capacityOfQueue = 4;
  
        // create object of LinkedBlockingQueue
        LinkedBlockingQueue<String> linkedQueue
            = new LinkedBlockingQueue<String>(capacityOfQueue);
  
        // Add element using put() method
        linkedQueue.put("Karan");
        linkedQueue.put("Suraj");
        linkedQueue.put("Harsh");
        linkedQueue.put("Rahul");
  
        // print elements of queue
        System.out.println("Items in Queue are " + linkedQueue);
  
        // try to remove Karan from Queue using remove()
        boolean try1 = linkedQueue.remove("Karan");
        // Print result of remove()
        System.out.println("String name Karan is removed :"
                           + try1);
  
        // try to remove Sunny from Queue using remove()
        boolean try2 = linkedQueue.remove("Sunny");
        // Print result of remove()
        System.out.println("String name Sunny is removed :"
                           + try2);
  
        // try to remove Sunny from Queue using remove()
        boolean try3 = linkedQueue.remove("Harsh");
        // Print result of remove()
        System.out.println("String name Harsh is removed :"
                           + try2);
  
        // print queue
        System.out.println("After Removing Some Elements:");
        System.out.println("Items in Queue are " + linkedQueue);
    }
}

chevron_right


Output:

Items in Queue are [Karan, Suraj, Harsh, Rahul]
String name Karan is removed :true
String name Sunny is removed :false
String name Harsh is removed :false
After Removing Some Elements:
Items in Queue are [Suraj, Rahul]

Program 1: Remove Employee object using remove(Object obj) method in LinkedBlockingQueue

filter_none

edit
close

play_arrow

link
brightness_4
code

// Java Program Demonstrate remove(object obj)
// method of LinkedBlockingQueue
  
import java.util.Iterator;
import java.util.concurrent.LinkedBlockingQueue;
public class GFG {
  
    public void removeDemo() throws InterruptedException
    {
        // define capacity of LinkedBlockingQueue
        int capacityOfQueue = 5;
  
        // create object of LinkedBlockingQueue
        LinkedBlockingQueue<Employee> linkedQueue
            = new LinkedBlockingQueue<Employee>(capacityOfQueue);
  
        // Add element to LinkedBlockingQueue
        Employee emp1 = new Employee("Ranjeet", "Tester", "29000", 27);
        Employee emp2 = new Employee("Sanjeet", "Manager", "98000", 34);
        Employee emp3 = new Employee("Karan", "Analyst", "44000", 30);
  
        // Add Employee Objects to linkedQueue Using put(E e)
        linkedQueue.put(emp1);
        linkedQueue.put(emp2);
        linkedQueue.put(emp3);
  
        // print details of linkedQueue
        System.out.println("Before removing Elements");
        Iterator itr = linkedQueue.iterator();
        while (itr.hasNext())
            System.out.println(itr.next());
  
        // remove employee2 name Sanjeet from linkedQueue
        // Using remove(Object obj) method
        linkedQueue.remove(emp2);
  
        // Also remove Ranjeet employee1 from linkedQueue
        // Using remove(Object obj) method
        linkedQueue.remove(emp1);
  
        // print details of linkedQueue
        System.out.println("After removing Some Elements");
        itr = linkedQueue.iterator();
        while (itr.hasNext())
            System.out.println(itr.next());
    }
  
    // create an Employee Object with name,
    // position, salary and age as attributes
    public class Employee {
  
        public String name;
        public String position;
        public String salary;
        public int Age;
        Employee(String name, String position,
                 String salary, int age)
        {
            this.name = name;
            this.position = position;
            this.salary = salary;
            this.Age = age;
        }
  
        @Override
        public String toString()
        {
            return "Employee [name=" + name + ", position="
                + position + ", salary=" + salary + ", Age=" + Age + "]";
        }
    }
  
    // Main Method
    public static void main(String[] args)
    {
        GFG gfg = new GFG();
        try {
            gfg.removeDemo();
        }
        catch (InterruptedException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}

chevron_right


Output:

Before removing Elements
Employee [name=Ranjeet, position=Tester, salary=29000, Age=27]
Employee [name=Sanjeet, position=Manager, salary=98000, Age=34]
Employee [name=Karan, position=Analyst, salary=44000, Age=30]
After removing Some Elements
Employee [name=Karan, position=Analyst, salary=44000, Age=30]

Reference: https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/LinkedBlockingQueue.html#remove-java.lang.Object-



My Personal Notes arrow_drop_up

I am a Developer I love to code and bring my ideas alive

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.