Skip to content
Related Articles

Related Articles

Improve Article

Set retainAll() method in Java with Example

  • Difficulty Level : Medium
  • Last Updated : 31 Dec, 2018

The retainAll() method of java.util.Set interface is used to retain from this set 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 set.

Return Value: This method returns true if this set changed as a result of the call.

Exception: This method throws NullPointerException if this set 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 Set
            Set<Integer> arrset1 = new HashSet<Integer>();
  
            // Populating arrset1
            arrset1.add(1);
            arrset1.add(2);
            arrset1.add(3);
            arrset1.add(4);
            arrset1.add(5);
  
            // print arrset1
            System.out.println("Set before retainAll() operation : "
                               + arrset1);
  
            // Creating another object of  Set
            Set<Integer> arrset2 = new HashSet<Integer>();
            arrset2.add(1);
            arrset2.add(2);
            arrset2.add(3);
  
            // print arrset2
            System.out.println("Collection Elements to be retained : "
                               + arrset2);
  
            // Removing elements from arrset
            // specified in arrset2
            // using retainAll() method
            arrset1.retainAll(arrset2);
  
            // print arrset1
            System.out.println("Set after retainAll() operation : "
                               + arrset1);
        }
  
        catch (NullPointerException e) {
            System.out.println("Exception thrown : " + e);
        }
    }
}
Output:
Set before retainAll() operation : [1, 2, 3, 4, 5]
Collection Elements to be retained : [1, 2, 3]
Set 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 Set<Integer>
            Set<Integer> arrset1 = new HashSet<Integer>();
  
            // Populating arrset1
            arrset1.add(1);
            arrset1.add(2);
            arrset1.add(3);
            arrset1.add(4);
            arrset1.add(5);
  
            // print arrset1
            System.out.println("Set before retainAll() operation : "
                               + arrset1);
  
            // Creating another object of Set<Integer>
            Set<Integer> arrset2 = null;
  
            // print arrset2
            System.out.println("Collection Elements to be retained : "
                               + arrset2);
  
            System.out.println("\nTrying to pass "
                               + "null as a specified element\n");
  
            // Removing elements from arrset
            // specified in arrset2
            // using retainAll() method
            arrset1.retainAll(arrset2);
  
            // print arrset1
            System.out.println("Set after retainAll() operation : "
                               + arrset1);
        }
  
        catch (NullPointerException e) {
            System.out.println("Exception thrown : " + e);
        }
    }
}
Output:
Set 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

Reference: https://docs.oracle.com/javase/7/docs/api/java/util/Set.html#retainAll(java.util.Collection)

Attention reader! Don’t stop learning now. Get hold of all the important Java Foundation and Collections concepts with the Fundamentals of Java and Java Collections Course at a student-friendly price and become industry ready. To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.




My Personal Notes arrow_drop_up
Recommended Articles
Page :