java编程n个集合每次从每个集合里面取出一个元素组成一个字符串列出所有组合算法 10

java编程n个集合每次从每个集合里面取出一个元素组成一个字符串列出所有组合算法a={1,2,3,4}b={a,b,c,d}c={A,B,G,H}每次这三个集合里出一个组... java编程n个集合每次从每个集合里面取出一个元素组成一个字符串列出所有组合算法
a={1,2,3,4}
b={a,b,c,d}
c={A,B,G,H}
每次这三个集合里出一个组成一个新的数字,例如:1,a,A
有没有什么算法可以列出所有的组合方式
展开
 我来答
超暗果下06
2017-09-15 · TA获得超过1031个赞
知道小有建树答主
回答量:335
采纳率:33%
帮助的人:102万
展开全部
import java.util.ArrayList;
import java.util.List;

public class XX {

 
    public static void main(String[] args)  
    {  
        String[] arr1 = { "1", "2","3","4"};  
        String[] arr2 = { "a", "b","c","d" };  
        String[] arr3 = { "A","B","G","H" };  
        List<String[]> list = new ArrayList<String[]>();  
        list.add(arr1);  
        list.add(arr2);  
        list.add(arr3);  
        test(list, arr1, "");  
    }  
  
    public static void test(List<String[]> list, String[] arr, String str)  
    {  
        for (int i = 0; i < list.size(); i++)  
        {  
            //取得当前的数组  
            if (i == list.indexOf(arr))  
            {  
                //迭代数组  
                for (String st : arr)  
                {  
                    st = str + st;  
                    if (i < list.size() - 1)  
                    {  
                        test(list, list.get(i + 1), st);  
                    }  
                    else if (i == list.size() - 1)  
                    {  
                        System.out.println(st);  
                    }  
                }  
            }  
        }  
    }  
}

计算结果:

1aA

1aB

1aG

1aH

1bA

1bB

1bG

1bH

1cA

1cB

1cG

1cH

1dA

1dB

1dG

1dH

2aA

2aB

2aG

2aH

2bA

2bB

2bG

2bH

2cA

2cB

2cG

2cH

2dA

2dB

2dG

2dH

3aA

3aB

3aG

3aH

3bA

3bB

3bG

3bH

3cA

3cB

3cG

3cH

3dA

3dB

3dG

3dH

4aA

4aB

4aG

4aH

4bA

4bB

4bG

4bH

4cA

4cB

4cG

4cH

4dA

4dB

4dG

4dH

追问
我只是简单举个例子,写了3个集合,如果有n个集合是无法这么做的,谢谢你的答案
追答
arr1 arr2 arr2 也只是举例,下面的程序是用到了递归,你放多少个集合都没问题
帐号已注销
2017-09-15 · 超过128用户采纳过TA的回答
知道小有建树答主
回答量:409
采纳率:60%
帮助的人:166万
展开全部
多重循环遍历?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式