The retainAll() method of java.util.concurrent.CopyOnWriteArraySet class 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.
Returns 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.concurrent.*; public class GFG1 { public static void main(String[] argv) throws Exception { try { // Creating object of CopyOnWriteArraySet<Integer> CopyOnWriteArraySet<Integer> set1 = new CopyOnWriteArraySet<Integer>(); // Populating set1 set1.add( 1 ); set1.add( 2 ); set1.add( 3 ); set1.add( 4 ); set1.add( 5 ); // print set1 System.out.println( "CopyOnWriteArraySet before " + "retainAll() operation : " + set1); // Creating another object of CopyOnWriteArraySet<Integer> CopyOnWriteArraySet<Integer> set2 = new CopyOnWriteArraySet<Integer>(); set2.add( 1 ); set2.add( 2 ); set2.add( 3 ); // print set2 System.out.println( "Collection Elements" + " to be retained : " + set2); // Removing elements from set // specified in set2 // using retainAll() method set1.retainAll(set2); // print set1 System.out.println( "CopyOnWriteArraySet after " + "retainAll() operation : " + set1); } catch (NullPointerException e) { System.out.println( "Exception thrown : " + e); } } } |
CopyOnWriteArraySet before retainAll() operation : [1, 2, 3, 4, 5] Collection Elements to be retained : [1, 2, 3] CopyOnWriteArraySet after retainAll() operation : [1, 2, 3]
Example 2: For NullPointerException
// Java program to demonstrate // retainAll() method for Integer value import java.util.concurrent.*; public class GFG1 { public static void main(String[] argv) throws Exception { try { // Creating object of CopyOnWriteArraySet<Integer> CopyOnWriteArraySet<Integer> set1 = new CopyOnWriteArraySet<Integer>(); // Populating set1 set1.add( 1 ); set1.add( 2 ); set1.add( 3 ); set1.add( 4 ); set1.add( 5 ); // print set1 System.out.println( "CopyOnWriteArraySet before " + "retainAll() operation : " + set1); // Creating another object of CopyOnWriteArraySet<Integer> CopyOnWriteArraySet<Integer> set2 = null ; // print set2 System.out.println( "Collection Elements" + " to be retained : " + set2); System.out.println( "\nTrying to pass " + "null as a specified element\n" ); // Removing elements from set // specified in set2 // using retainAll() method set1.retainAll(set2); // print set1 System.out.println( "CopyOnWriteArraySet after " + "retainAll() operation : " + set1); } catch (NullPointerException e) { System.out.println( "Exception thrown : " + e); } } } |
CopyOnWriteArraySet 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