public static String[][] arithmetic(ArrayList list){   String arr=(String[])list.get(x)
  //list的每一项都是一个String[],list有多少项不定,String[] 有多少维不定
  //求数组间排列组合的结果
  //如
  list.get(0)=String[2]{"1","2"};
  list.get(1)=String[3]{"a","b","c"};
  //则返回:
  1 a
  1 b
  1 c
  2 a
  2 b
  2 c   //如
  list.get(0)=String[2]{"1","2"};
  list.get(1)=String[3]{"a","b","c"};
  list.get(2)=String[2]{"d","e"};  //则返回:
  1 a d
  1 a e
  1 b d
  1 b e
  1 c d
  1 c e
  
  2 a d
  2 a e
  2 b d
  2 b e
  2 c d
  2 c e
 
}

解决方案 »

  1.   

    看看这里:
    http://www.elearning.gov.cn/elearning/user/findclass.do?method=courselist&categoryid=57982540b6cd11d993d0f770c0a83c70&id=2
      

  2.   

    import java.util.ArrayList;public class Test {
    public static void main(String[] args)
    {
    ArrayList list=new ArrayList();
    list.add(new String[]{"1","2"});
    list.add(new String[]{"a","b","c"});
    list.add(new String[]{"d","e"});

    Test test=new Test();
    test.visit(1,new StringBuffer(""),list);
    }

    public void visit(int depth,StringBuffer lastLevelStringBuff,ArrayList inputList){
    String[] currentLevelString=(String[])inputList.get(depth-1);
    if(depth==inputList.size())
    {
    for(int i=0;i<currentLevelString.length;i++)
    {
    StringBuffer sb=new StringBuffer().append(lastLevelStringBuff);
    System.out.println(sb.append(currentLevelString[i]));
    }
    }
    else
    {
    for(int i=0;i<currentLevelString.length;i++)
    {
    StringBuffer sb=new StringBuffer().append(lastLevelStringBuff);
    visit(depth+1,sb.append(currentLevelString[i]).append(" "),inputList);
    }
    }
    }
         
    }
      

  3.   

    to geelpheels(geelpheels) :
    老大,你强!