51,397
社区成员




List<String> list1 = new ArrayList<>();
list1.add("1");
list1.add("3");
list1.add("5");
List<String> list2 = new ArrayList<>();
list2.add("2");
list2.add("4");
list2.add("6");
两个LIST的长度相同,比如上例为都为3(实际上长度不固定)
想生成另外新的list,规则如下
新的list的第一条记录,是从list1中的"1"和list2中的“2”中分别取
新的list的第二条记录,是从list1中的"3"和list2中的“4”中分别取
新的list的第三条记录,是从list1中的"5"和list2中的“6”中分别取
这样,我们就可以得到若干个LIST,内容分别是(横向排列)
135
235
146
246
135
145
236
246
135
136
245
246
...
求代码实现,谢谢!可以是自定义动态 的LIST,也可以放在一个二维数组中,都行。
注意:这里的LIST1长度不一定是3,感谢大家
首先总的List数是可以确定的,假设两个List长度都是n,那就有2^n个选取方法
所以我们只需要遍历0 - 2^n-1的整数,每个整数构造一个List,具体方法为,n个元素分别对应该整数二进制下0 - n-1的每一位,如果是0则从List1取出,1则从List2取出
当然n必须要不大于32,对大于32的长度可以用BigInteger遍历(当然电脑得顶得住才行)