The retainAll() method of java.util.Stack class is used to retain from this stack all of its elements that are contained in the specified collection.
Syntax:
public boolean retainAll(Collection c)
Parameters: This method takes collection c as a parameter containing elements to be retained from this stack.
Returns Value: This method returns true if this stack changed as a result of the call.
Exception: This method throws NullPointerException if this stack contains a null element and the specified collection does not permit null elements (optional), or if the specified collection is null.
Below are the examples to illustrate the retainAll() method.
Example 1:
// Java program to demonstrate // retainAll() method for Integer value import java.util.*; public class GFG1 { public static void main(String[] argv) throws Exception { try { // Creating object of Stack<Integer> Stack<Integer> stack1 = new Stack<Integer>(); // Populating stack1 stack1.add( 1 ); stack1.add( 2 ); stack1.add( 3 ); stack1.add( 4 ); stack1.add( 5 ); // print stack1 System.out.println( "Stack before " + "retainAll() operation : " + stack1); // Creating another object of Stack<Integer> Stack<Integer> stack2 = new Stack<Integer>(); stack2.add( 1 ); stack2.add( 2 ); stack2.add( 3 ); // print stack2 System.out.println( "Collection Elements" + " to be retained : " + stack2); // Removing elements from stack // specified in stack2 // using retainAll() method stack1.retainAll(stack2); // print stack1 System.out.println( "Stack after " + "retainAll() operation : " + stack1); } catch (NullPointerException e) { System.out.println( "Exception thrown : " + e); } } } |
Stack before retainAll() operation : [1, 2, 3, 4, 5] Collection Elements to be retained : [1, 2, 3] Stack after retainAll() operation : [1, 2, 3]
Example 2: For NullPointerException
// Java program to demonstrate // retainAll() method for Integer value import java.util.*; public class GFG1 { public static void main(String[] argv) throws Exception { try { // Creating object of Stack<Integer> Stack<Integer> stack1 = new Stack<Integer>(); // Populating stack1 stack1.add( 1 ); stack1.add( 2 ); stack1.add( 3 ); stack1.add( 4 ); stack1.add( 5 ); // print stack1 System.out.println( "Stack before " + "retainAll() operation : " + stack1); // Creating another object of Stack<Integer> Stack<Integer> stack2 = null ; // print stack2 System.out.println( "Collection Elements" + " to be retained : " + stack2); System.out.println( "\nTrying to pass " + "null as a specified element\n" ); // Removing elements from stack // specified in stack2 // using retainAll() method stack1.retainAll(stack2); // print stack1 System.out.println( "Stack after " + "retainAll() operation : " + stack1); } catch (NullPointerException e) { System.out.println( "Exception thrown : " + e); } } } |
Stack before retainAll() operation : [1, 2, 3, 4, 5] Collection Elements to be retained : null Trying to pass null as a specified element Exception thrown : java.lang.NullPointerException