CCI 9.4 集合的所有子集

来源:互联网 发布:windows改变图标 编辑:程序博客网 时间:2024/04/30 07:55

编写一个方法,返回某集合的所有子集。

package cci;import java.util.ArrayList;public class CCI_9_4 {//递归public static ArrayList<ArrayList<Integer>> getSubsets(ArrayList<Integer> set){if(set == null)return null;ArrayList<ArrayList<Integer>> result = new ArrayList<ArrayList<Integer>>();//finish conditionif(set.size()==0){//empty setresult.add(new ArrayList<Integer>());return result;}int item = set.remove(set.size()-1);ArrayList<ArrayList<Integer>> subsets = getSubsets(set);result.addAll(subsets);for(ArrayList<Integer> subset : subsets){ArrayList<Integer> newSet = new ArrayList<Integer>(subset);newSet.add(item);result.add(newSet);}return result;}public static void main(String[] args) {// TODO Auto-generated method stubArrayList<Integer> case1 = new ArrayList<Integer>();for(int i=0; i<3; i++)case1.add(i+1);ArrayList<ArrayList<Integer>> result = getSubsets(case1);for(ArrayList<Integer> subset : result){for(Integer item : subset){System.out.print(item + " ");}System.out.println();}}}


0 0
原创粉丝点击