<分区>
我想找到给定集合的所有子集。
我得到的字符串集定义如下:HashSet<String> L
我想在一个循环中使用它的所有子集:for each 做某事。
有没有复杂度低的简单方法来做到这一点?
<分区>
我想找到给定集合的所有子集。
我得到的字符串集定义如下:HashSet<String> L
我想在一个循环中使用它的所有子集:for each 做某事。
有没有复杂度低的简单方法来做到这一点?
最佳答案
OK,我用了这个算法(L
是一组字符串):
powerSet = new HashSet<List<String>>();
List<String> mainList = new ArrayList<String>(L);
buildPowerSet(mainList,mainList.size());
还有,
private static void buildPowerSet(List<String> list, int count)
{
powerSet.add(list);
for(int i=0; i<list.size(); i++)
{
List<String> temp = new ArrayList<String>(list);
temp.remove(i);
buildPowerSet(temp, temp.size());
}
}
关于java - 查找集合的所有子集 (PowerSet),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18800850/