Stack retainAll() method in Java with Example

Last Updated : 24 Dec, 2018
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
// 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);
        }
    }
}
Output:
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
// 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);
        }
    }
}
Output:
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
Comment