java排列组合简单算法


    /**
     * 排列组合
     * @param i
     * @param str        
     * @param allList    返回的所有组合
     * @param values    需要排列组合的数据
     */
    public static void combination(int i,String str,List allList,List...values){
        String ss = str;
        i++;
        if(i+1 > values.length){
            return;
        }
        for(String s:values[i]){
            ss+=s;
            if(values.length <= i+1){
                allList.add(ss);
            }
            combination(i, ss, allList, values);
            ss=str;
        }
    }

 

 

调用例子


        List a1 = new ArrayList();
        a1.add("a");
        a1.add("b");
        a1.add("c");
        List b1 = new ArrayList();
        b1.add("1");
        b1.add("2");
        b1.add("3");
        List c1 = new ArrayList();
        c1.add("4");
        c1.add("5");
        c1.add("6");

        List allList = new ArrayList();
        combination(-1, "", allList,a1,b1,c1);
        //
        for(String s:allList){
            System.out.println(s);
        }

你可能感兴趣的:(java排列组合简单算法)