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);
我想的到所有组合的结果,不过每个数据的下标不能变
就好比:
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]);
}
}
}
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。