The add(E e) method of BlockingQueue interface inserts the element passed in the parameter to the end of the Queue is there is space. If the BlockingQueue os capacity restricted and no space is left for insertion, it returns an IllegalStateException.
Syntax:
public void add(E e)
Parameters: This method accepts a mandatory parameter e which is the element to be inserted in the end of the BlockingQueue.
Returns: This method returns true on successful insertion.
Exception:
- IllegalStateException: if the element cannot be added at this time due to capacity restrictions
- NullPointerException: if the specified element is null
Note: The add() method of BlockingQueue has been inherited from the Queue class in Java.
Below programs illustrate add() method of BlockingQueue:
Program 1:
Java
import java.util.*;
import java.util.concurrent.BlockingQueue;
import java.util.concurrent.LinkedBlockingDeque;
public class GFG {
public static void main(String[] args)
throws IllegalStateException
{
BlockingQueue<Integer> BQ
= new LinkedBlockingDeque<Integer>();
BQ.add( 7855642 );
BQ.add( 35658786 );
BQ.add( 5278367 );
BQ.add( 74381793 );
System.out.println( "Blocking Queue: " + BQ);
}
}
|
OutputBlocking Queue: [7855642, 35658786, 5278367, 74381793]
Program 2:
Java
import java.util.*;
import java.util.concurrent.LinkedBlockingDeque;
public class GFG {
public static void main(String[] args)
throws IllegalStateException
{
LinkedBlockingDeque<Integer> BQ
= new LinkedBlockingDeque<Integer>();
BQ.add( 7855642 );
BQ.add( 35658786 );
BQ.add( 5278367 );
BQ.add( null );
System.out.println( "Linked Blocking Deque: " + BQ);
}
}
|
Output:
Exception in thread "main" java.lang.IllegalStateException: Deque full
at java.util.concurrent.LinkedBlockingDeque.addLast(LinkedBlockingDeque.java:335)
at java.util.concurrent.LinkedBlockingDeque.add(LinkedBlockingDeque.java:633)
at GFG.main(GFG.java:25)
Reference: https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/BlockingQueue.html#add(E)