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; i arr=新ArrayList<在(); arr.add (arr0[我]); arr.add (arr1 [j]);//把排列数据加到临时的集合中 tempArrayLists.add (arr); 其他}{//到这里就明循环了最少一轮啦,我们把上一轮的结果拿出来继续跟arrayLists的下一个元素排列 ArrayList 比;arrtemp=(ArrayList arr=新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实现多个数组间的排列组合