当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Java Guava Sets powerSet()用法及代码示例


Guava 的Sets.powerSet()返回集合的所有可能子集的集合。

用法:

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

这里,set是从中构造幂集的元素集。


返回值:此方法将幂集作为不可变集的不可变集返回。

异常:

  • IllegalArgumentException:如果set具有30个以上的唯一元素,因为这将导致幂集大小超出int范围。
  • NullPointerException :如果set为null或包含null。

注意:空集的幂集不是空集,而是包含空集的one-element集。

范例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<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); 
    } 
}
输出:
[]
[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<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); 
    } 
}
输出:
[]
[F]
[G]
[F, G]
[g]
[F, g]
[G, g]
[F, G, g]

注意:虽然大小为n的集合的幂集的大小为2^n,但其内存使用量仅为O(n)。构建电源集时,仅复制输入集。仅在功率集被迭代时,才会创建各个子集,并且这些子集本身仅占用少量恒定的内存。



相关用法


注:本文由纯净天空筛选整理自Sahil_Bansall大神的英文原创作品 Sets powerSet() function | Guava | Java。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。