java 多个集合 每个集合取其中一个,进行排列

工作中遇到一个拆分的算法问题。要把几个数组或者集合,组合起来。每个集合或数组只取一个。想了老半天没有想到,问几个人都说很简单吗,他们都举了一个例子,然后进行遍历。当我说我想要个通用方法的时候,都卡住了,需要花一点时间去想了。

代码:

public classTest {

List>listTo=newArrayList>();

publicList>  getList1( List> lists){

for(inti =0; i < lists.get(0).size() ; i++){

ArrayList st1 =newArrayList();

st1.add(lists.get(0).get(i));

if(lists.size() ==2){

for(intj =0; j < lists.get(1).size() ; j++){

ArrayList st2 =newArrayList();

st2 = (ArrayList)st1.clone();

String s = lists.get(lists.size() -1).get(j);

st2.add(s);

listTo.add(st2);

}

}else{

listTo=this.tm1(lists,1, st1);

}

}

returnlistTo;

}

publicList>  tm1(List> lists ,intj,ArrayList st){

for(inti =0; i < lists.get(j).size() ; i++){

ArrayList st1 =newArrayList();

st1 = (ArrayList)st.clone();

st1.add(lists.get(j).get(i));

if(j ==  lists.size() -2){

for(intt =0; t < lists.get(lists.size() -1).size() ; t++){

ArrayList st2 =newArrayList();

st2 = (ArrayList)st1.clone();

String s = lists.get(lists.size() -1).get(t);

st2.add(s);

listTo.add(st2);

}

}else{

this.tm1(lists,j+1,st1);

}

}

returnlistTo;

}

public static  voidmain(String[] args){

List strings1 =newArrayList();

List strings2 =newArrayList();

List strings3 =newArrayList();

List strings4 =newArrayList();

strings1.add("1");

strings1.add("3");

strings2.add("1");

strings2.add("2");

strings3.add("1");

strings3.add("2");

strings3.add("3");

List> lists =newArrayList>();

lists.add(strings1);

lists.add(strings2);

lists.add(strings3);

Test test =newTest();

List> list1 = test.getList1(lists);

intj =0;

for(List l : list1){

System.out.println(l.get(0) +"-"+ l.get(1) +"-"+ l.get(2) +"********"+ j);

j++;

}

}

}

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容