求一组数的子集

来源:互联网 发布:淘宝网游戏币商城 编辑:程序博客网 时间:2024/04/27 15:37
import java.util.*;public class Main {static ArrayList< ArrayList<Integer> > getSubSets(ArrayList<Integer> set){int max=1<<set.size();ArrayList< ArrayList<Integer> > allSubSet=new ArrayList<ArrayList<Integer>>();for(int i=0;i<max;i++){allSubSet.add(convertIntToSet(i, set));}return allSubSet;}static ArrayList<Integer> convertIntToSet(int x,ArrayList<Integer> set){int index=0;ArrayList<Integer> subSet=new ArrayList<Integer>();for(int k=x;k>0;k>>=1){if((k&1)==1){subSet.add(set.get(index));} index++;}return subSet;}static void display(ArrayList< ArrayList<Integer> > sets){for( ArrayList<Integer> arrayList : sets){for(Integer integer : arrayList){System.out.print(integer+" ");}System.out.println();}}public static void main(String[] args) {ArrayList<Integer> arrayList=new ArrayList<Integer>();for(int i=0;i<5;i++){arrayList.add(i);}display(getSubSets(arrayList));}}//output example/*01 0 1 2 0 2 1 2 0 1 2 3 0 3 1 3 0 1 3 2 3 0 2 3 1 2 3 0 1 2 3 4 0 4 1 4 0 1 4 2 4 0 2 4 1 2 4 0 1 2 4 3 4 0 3 4 1 3 4 0 1 3 4 2 3 4 0 2 3 4 1 2 3 4 0 1 2 3 4 */

0 0
原创粉丝点击