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
有没有什么算法可以列出所有的组合方式 展开
a={1,2,3,4}
b={a,b,c,d}
c={A,B,G,H}
每次这三个集合里出一个组成一个新的数字,例如:1,a,A
有没有什么算法可以列出所有的组合方式 展开
2个回答
展开全部
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 也只是举例,下面的程序是用到了递归,你放多少个集合都没问题
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询