设置 powerSet()函数|番石榴 |Java
Guava 的Sets.powerSet()返回集合的所有可能子集的集合。
句法:
public static
Set>
powerSet(Set set)
这里, set是用来构造幂集的元素集。
返回值:此方法返回幂集,作为不可变集的不可变集。
例外:
- IllegalArgumentException:如果 set 有超过 30 个唯一元素,因为这会导致幂集大小超出 int 范围。
- NullPointerException:如果设置为 null 或包含 null。
注:空集的幂集不是空集,而是包含空集的一元集。
示例 1:
// 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
set = Sets.newHashSet(1, 2, 3);
// powerSet to store all subsets of a set
Set >
powerSet = Sets.powerSet(set);
// Displaying all possible subsets of a set
for (Set s : powerSet)
System.out.println(s);
}
}
输出:
[]
[1]
[2]
[1, 2]
[3]
[1, 3]
[2, 3]
[1, 2, 3]
示例 2:
// 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
set = Sets.newHashSet("G", "F", "g");
// powerSet to store all subsets of a set
Set >
powerSet = Sets.powerSet(set);
// Displaying all possible subsets of a set
for (Set s : powerSet)
System.out.println(s);
}
}
输出:
[]
[F]
[G]
[F, G]
[g]
[F, g]
[G, g]
[F, G, g]
注意:虽然大小为 n 的集合的幂集大小为 2^n,但其内存使用量仅为O(n) 。构造幂集时,仅复制输入集。只有当幂集被迭代时,才会创建单独的子集,而这些子集本身只占用很小的恒定内存量。