美文网首页
java 多个集合 每个集合取其中一个,进行排列

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

作者: 南塘的唐 | 来源:发表于2018-07-04 08:28 被阅读0次

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

    代码:

    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++;

    }

    }

    }

    相关文章

      网友评论

          本文标题:java 多个集合 每个集合取其中一个,进行排列

          本文链接:https://www.haomeiwen.com/subject/skklnttx.html