1. 如何计算幂集 1.1. 需求
给定三个数字1,2,3 得到 {1,2,3,12,13,23,123,””}等等这些集合
原始文章,感谢这位大哥
1.2. 什么是幂集
百科
1.3. 代码 1.3.1. 核心 public List<List<String>> powerSetList<String> set) { //已知所求集合的幂集会有2^n个元素 int size = 2 << set.size); List<List<String>> powerSet = new ArrayList<>size); //首先空集肯定是集合的幂集 powerSet.addCollections.emptyList)); for String element : set) { //计算当前元素与已存在幂集的组合 int preSize = powerSet.size); for int i = 0; i < preSize; i++) { List<String> combineSubset = new ArrayList<>powerSet.geti)); combineSubset.addelement); powerSet.addcombineSubset); } } return powerSet; } 1.3.2. 测试 /** * 打印一下生成的幂集 */ @Test public void printData) { List<String> set = Arrays.asList”1″, “2”, “3”); List<List<String>> powerSet = powerSetset); Console.log”幂集的数量是 = [ {} ]”,powerSet.size)); for List<String> item : powerSet) { String join = Joiner.on”,”).joinitem); System.out.printlnjoin); } } 1.3.3. 结果 幂集的数量是 = [ 8 ]121,231,32,31,2,3