Java实现多个数组间的排列组合

  

Java多个数组之间的排列组合,具体内容如下

  

说明:有一批手机有各种颜色,各种尺寸,各种版本,然后要实现他们之间各种属性的组合。

  

定义各种属性

        String[]颜色={"红色”,“白”色,“蓝”色,“金色"};   String[]大?{“4.7寸”、“5.1寸”、“6.0寸”};   String [] version={"联通”、“电信”、“移动”,“全网通"};      之前      

先看一下结果

  

红色,4.7寸,全网通,
  红色,4.7寸,移动,
  红色,4.7寸,电信,
  红色,4.7寸,联通,
  红色,5.1寸,全网通,
  白色,5.1寸,移动,
  白色,5.1寸,联通,
  白色,6.0寸,全网通,………。就贴这么多了,应该可以看懂的啦

  

好了,上代码

        公共空间doExchange(列表arrayLists) {      int len=arrayLists.size ();//判断数组大小是否小于2,如果小于说明已经递归完成了,否则你们懂得的,不懂吗?断续看代码   如果(len<2) {   this.arrayLists=arrayLists;   返回;   }//拿到第一个数组   int len0;   如果(arrayLists.get (0) instanceof String []) {   String [] arr0=(String []) arrayLists.get (0);   len0=arr0.length;   其他}{   len0=((ArrayList比;tempArrayLists=new ArrayList<祝辞(lenBoth);//第一层,就是循环arrayLists第一个元素的   for (int i=0; iarr=新ArrayList<在();   arr.add (arr0[我]);   arr.add (arr1 [j]);//把排列数据加到临时的集合中   tempArrayLists.add (arr);   其他}{//到这里就明循环了最少一轮啦,我们把上一轮的结果拿出来继续跟arrayLists的下一个元素排列   ArrayList比;arrtemp=(ArrayListarr=新ArrayList<在();   (int k=0; k< arrtemp.get (i) .size (); k + +) {   arr.add (arrtemp.get(我). get (k));   }   arr.add (arr1 [j]);   tempArrayLists.add (arr);   }   }   }//这是根据上面排列的结果重新生成的一个集合   ,列表newArrayLists=new ArrayList<的在();//把还没排列的数组装进来,看清楚我=2的喔,因为前面两个数组已经完事了,不需要再加进来了   for (int i=2; i< arrayLists.size();我+ +){   newArrayLists.add (arrayLists.get (i));   }//记得把我们辛苦排列的数据加到新集合的第一位喔,不然白忙了   newArrayLists.add (0, tempArrayLists);//你没看错,我们这整个算法用到的就是递归的思想。   doExchange (newArrayLists);   }   之前      

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

Java实现多个数组间的排列组合