开发者社区> 问答> 正文

java排列组合出所有的结果

code:

List<String[]> list = new ArrayList<String[]>();
        String[] str = new String[1];
        str[0] = "a1";
        list.add(str);
        str = new String[3];
        str[0] = ",b1";
        str[1] = ",b2";
        str[2] = ",b3";
        list.add(str);
        str = new String[2];
        str[0] = ",c1";
        str[1] = ",c2";
        list.add(str);
        str = new String[2];
        str[0] = ",e1";
        str[1] = ",e2";
        list.add(str);
        str = new String[4];
        str[0] = ",d1";
        str[1] = ",d2";
        str[2] = ",d3";
        str[3] = ",d4";
        list.add(str);

我想的到所有组合的结果,不过每个数据的下标不能变
就好比:

  1. a1,b1,c2,d1,e1
  2. a1,b1,c2,d1,e1
  3. a1,b1,c2,d1,e1
    1.
  4. a1,b2,c2,d1,e1
  5. a1,b2,c2,d1,e1
  6. a1,b2,c2,d1,e1
    1.
  7. a1,b3,c2,d1,e1
  8. a1,b3,c2,d1,e1
  9. a1,b3,c2,d1,e1
    1.
  10. a1,b1,c1,d2,e1
  11. a1,b1,c1,d2,e1
  12. a1,b1,c1,d2,e1
    1.
  13. a1,b2,c1,d2,e1
  14. a1,b2,c1,d2,e1
  15. a1,b2,c1,d2,e1
    1.
  16. a1,b3,c1,d2,e1
  17. a1,b3,c1,d2,e1
  18. a1,b3,c1,d2,e1
    1.
  19. a1,b1,c2,d2,e1
  20. a1,b1,c2,d2,e1
  21. a1,b1,c2,d2,e1
    1.
  22. a1,b2,c2,d2,e1
  23. a1,b2,c2,d2,e1
  24. a1,b2,c2,d2,e1
    1.
  25. a1,b3,c2,d2,e1
  26. a1,b3,c2,d2,e1
  27. a1,b3,c2,d2,e1
    1.
  28. a1,b1,c3,d2,e1
  29. a1,b1,c3,d2,e1
  30. a1,b1,c3,d2,e1
    1.
  31. a1,b2,c3,d2,e1
  32. a1,b2,c3,d2,e1
  33. a1,b2,c3,d2,e1
    1.
  34. a1,b3,c3,d2,e1
  35. a1,b3,c3,d2,e1
  36. a1,b3,c3,d2,e1
    怎么用Java循环出来啊

展开
收起
蛮大人123 2016-03-19 10:54:50 2686 0
1 条回答
写回答
取消 提交回答
  • 我说我不帅他们就打我,还说我虚伪
     import java.util.*;
    public class FullPermutation 
    {
        public static void main(String[] args) 
        {
            System.out.println("Hello World!");
            List<String[]> list = new ArrayList<String[]>();
            String[] str = new String[1];
            str[0] = "a1";
            list.add(str);
            str = new String[3];
            str[0] = "b1";
            str[1] = "b2";
            str[2] = "b3";
            list.add(str);
            str = new String[2];
            str[0] = "c1";
            str[1] = "c2";
            list.add(str);
            str = new String[2];
            str[0] = "e1";
            str[1] = "e2";
            list.add(str);
            str = new String[4];
            str[0] = "d1";
            str[1] = "d2";
            str[2] = "d3";
            str[3] = "d4";
            list.add(str);
            for(String[] s : list){
                System.out.println(Arrays.toString(s));
            }
            System.out.println("--------------");
            fullPermutation(list,0,null);
        }
        public static void fullPermutation(List<String[]> list,int index,List<String> result){
            if(index == list.size()){
                System.out.println(result);
                return;
            }
            String[] s = list.get(index);
            for(int i = 0; i < s.length; i++){
              if(index == 0){
                    result = new ArrayList<String>();
                    result.add(s[i]);
                }
              else{
                    result.add(s[i]);
                }
                fullPermutation(list,index + 1,result);
                result.remove(s[i]);
            }
        }
    }
    2019-07-17 19:07:39
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载