當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。