Sets powerSet() function | Guava | Java

Guava’s Sets.powerSet() returns the set of all possible subsets of set.

Syntax:

public static <E> 
  Set<Set<E>> 
    powerSet(Set<E> set)

Here, set is the set of elements to construct a power set from.



Return Value: This method returns the power set, as an immutable set of immutable sets.

Exceptions:

  • IllegalArgumentException: If set has more than 30 unique elements, because this causes the power set size to exceed the int range.
  • NullPointerException: If set is or contains null.

Note: The power set of the empty set is not the empty set, but a one-element set containing the empty set.

Example 1:

filter_none

edit
close

play_arrow

link
brightness_4
code

// Java code to return the set of
// all possible subsets of a set
  
import com.google.common.collect.Sets;
import java.util.Set;
  
class GFG {
  
    // Driver's code
    public static void main(String[] args)
    {
  
        // Creating a set
        Set<Integer>
            set = Sets.newHashSet(1, 2, 3);
  
        // powerSet to store all subsets of a set
        Set<Set<Integer> >
            powerSet = Sets.powerSet(set);
  
        // Displaying all possible subsets of a set
        for (Set<Integer> s : powerSet)
            System.out.println(s);
    }
}

chevron_right


Output:

[]
[1]
[2]
[1, 2]
[3]
[1, 3]
[2, 3]
[1, 2, 3]

Example 2:

filter_none

edit
close

play_arrow

link
brightness_4
code

// Java code to return the set of
// all possible subsets of a set
  
import com.google.common.collect.Sets;
import java.util.Set;
  
class GFG {
  
    // Driver's code
    public static void main(String[] args)
    {
        // Creating a set
        Set<String>
            set = Sets.newHashSet("G", "F", "g");
  
        // powerSet to store all subsets of a set
        Set<Set<String> >
            powerSet = Sets.powerSet(set);
  
        // Displaying all possible subsets of a set
        for (Set<String> s : powerSet)
            System.out.println(s);
    }
}

chevron_right


Output:

[]
[F]
[G]
[F, G]
[g]
[F, g]
[G, g]
[F, G, g]

Note: While the power set of a set with size n is of size 2^n, its memory usage is only O(n). When the power set is constructed, the input set is merely copied. Only as the power set is iterated are the individual subsets created, and these subsets themselves occupy only a small constant amount of memory.



My Personal Notes arrow_drop_up

In love with a semicolon because sometimes i miss it so badly)

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.




Article Tags :
Practice Tags :


Be the First to upvote.


Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.