The addAll(E e) method of AbstractQueue adds all of the elements in the specified collection to this queue.
Syntax:
public boolean addAll(Collection c)
Parameters: This method accepts a mandatory parameter collection containing elements to be added to this queue
Returns: The method returns true if this queue changed as a result of the call
Exception: This method throws following exceptions:
- IllegalStateException: if not all the elements can be added at this time due to insertion restrictions
- NullPointerException: if the specified collection contains a null element and this queue does not permit null elements, or if the specified collection is null
- ClassCastException – if the class of an element of the specified collection prevents it from being added to this queue
- IllegalArgumentException – if some property of an element of the specified collection prevents it from being added to this queue, or if the specified collection is this queue
Below programs illustrate addAll() method:
Program 1:
import java.util.*;
import java.util.concurrent.LinkedBlockingQueue;
public class GFG1 {
public static void main(String[] argv)
throws Exception
{
AbstractQueue<Integer>
AQ1 = new LinkedBlockingQueue<Integer>();
AQ1.add( 10 );
AQ1.add( 20 );
AQ1.add( 30 );
AQ1.add( 40 );
AQ1.add( 50 );
System.out.println( "AbstractQueue1 contains : " + AQ1);
AbstractQueue<Integer>
AQ2 = new LinkedBlockingQueue<Integer>();
System.out.println( "AbstractQueue2 initially contains : " + AQ2);
AQ2.addAll(AQ1);
System.out.println( "AbstractQueue1 after addition contains : " + AQ2);
}
}
|
Output:
AbstractQueue1 contains : [10, 20, 30, 40, 50]
AbstractQueue2 initially contains : []
AbstractQueue1 after addition contains : [10, 20, 30, 40, 50]
Program 2: Program for IllegalStateException
import java.util.*;
import java.util.concurrent.LinkedBlockingQueue;
public class GFG1 {
public static void main(String[] argv)
throws Exception
{
try {
AbstractQueue<Integer>
AQ1 = new LinkedBlockingQueue<Integer>();
AQ1.add( 10 );
AQ1.add( 20 );
AQ1.add( 30 );
AQ1.add( 40 );
AQ1.add( 50 );
System.out.println( "AbstractQueue1 contains : " + AQ1);
AbstractQueue<Integer>
AQ2 = new LinkedBlockingQueue<Integer>( 3 );
System.out.println( "AbstractQueue2 initially contains : " + AQ2);
AQ2.addAll(AQ1);
System.out.println( "AbstractQueue1 after addition contains : " + AQ2);
}
catch (Exception e) {
System.out.println( "Exception: " + e);
}
}
}
|
Output:
AbstractQueue1 contains : [10, 20, 30, 40, 50]
AbstractQueue2 initially contains : []
Exception: java.lang.IllegalStateException: Queue full
Program 3: Program for NullPointerException
import java.util.*;
import java.util.concurrent.LinkedBlockingQueue;
public class GFG1 {
public static void main(String[] argv)
throws Exception
{
try {
AbstractQueue<Integer>
AQ1 = null ;
System.out.println( "AbstractQueue1 contains : " + AQ1);
AbstractQueue<Integer>
AQ2 = new LinkedBlockingQueue<Integer>( 3 );
System.out.println( "AbstractQueue2 initially contains : " + AQ2);
AQ2.addAll(AQ1);
System.out.println( "AbstractQueue1 after addition contains : " + AQ2);
}
catch (Exception e) {
System.out.println( "Exception: " + e);
}
}
}
|
Output:
AbstractQueue1 contains : null
AbstractQueue2 initially contains : []
Exception: java.lang.NullPointerException
Reference: https://docs.oracle.com/javase/8/docs/api/java/util/AbstractQueue.html#addAll-E-