The newSetFromMap() method of java.util.Collections class is used to return a set backed by the specified map. The resulting set displays the same ordering, concurrency, and performance characteristics as the backing map. In essence, this factory method provides a Set implementation corresponding to any Map implementation. There is no need to use this method on a Map implementation that already has a corresponding Set implementation (such as HashMap or TreeMap).
Syntax:
public static Set newSetFromMap(Map map)
Parameters: This method takes the backing map as a parameter
Return Value: This method returns the set backed by the map
Exception: This method throws IllegalArgumentException, if map is not empty.
Below are the examples to illustrate the newSetFromMap() method
Example 1:
// Java program to demonstrate // newSetFromMap() method   import java.util.*;   public class GFG1 {     public static void main(String[] argv)         throws Exception     {           try {               // creating object of Map<String, Boolean>             Map<String, Boolean>                 map = new WeakHashMap<String, Boolean>();               // creating object of LinkedList             Set<String> set = Collections.newSetFromMap(map);               // add values in set             set.add( "A" );             set.add( "B" );             set.add( "C" );             set.add( "D" );               // set and map values are             System.out.println( "Map is: " + map);             System.out.println( "Set from Map is: " + set);         }           catch (IllegalArgumentException e) {             System.out.println( "Exception thrown : " + e);         }     } } |
Map is: {C=true, B=true, A=true, D=true} Set from Map is: [C, B, A, D]
Example 2: for IllegalArgumentException
// Java program to demonstrate // newSetFromMap() method // for IllegalArgumentException   import java.util.*; <div class = 'outputDiv' > <b>Output:</b> <pre> Set is: [C, B, A, D] Map is: {C= true , B= true , A= true , D= true } </pre> </div>   public class GFG1 {     public static void main(String[] argv) throws Exception     {         try {               // creating object of Map<String, Boolean>             Map<String, Boolean>                 map = new WeakHashMap<String, Boolean>();               // putting value in map             map.put( "1" , true );               // creating object of LinkedList             Set<String> set = Collections.newSetFromMap(map);               // add values in set             set.add( "A" );             set.add( "B" );             set.add( "C" );             set.add( "D" );               // set and map values are             System.out.println( "Map is: " + map);             System.out.println( "Set from Map is: " + set);         }           catch (IllegalArgumentException e) {             System.out.println( "Exception thrown : " + e);         }     } } |
Exception thrown : java.lang.IllegalArgumentException: Map is non-empty