java - 查找集合的所有子集 (PowerSet)

标签 java set

<分区>

我想找到给定集合的所有子集。 我得到的字符串集定义如下:HashSet<String> L我想在一个循环中使用它的所有子集:for each A subset of L做某事。 有没有复杂度低的简单方法来做到这一点?

最佳答案

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/

相关文章:

javascript - 无法通过 node.js 中的 socket.io 发送 Set() 对象

python - 如何在 Python 中检查另一个字典中是否存在值的键(如一个字典中所定义)?

java - 带有桌面应用程序示例功能的 Java 文本编辑器

java - HQL查询帮助(分组依据、排序依据)

Java 弹出窗口说应用程序包含未签名和已签名的代码

java - 在 CMIS 中创建文档

math - Perl 6中列表的所有子集

algorithm - 生成不在一组数字 N 中的随机数 R 的最佳算法

javascript - 从 Html 表单 Meteor javascript 获取 Var 时出错

java - 无法让消息 View 显示在 Android Eclipse 应用程序中