今天同事在做一个需求的时候,需要设计到二维数组的排列组合为题,就趁这个机会,实现了这个功能,现记录一下;
public static void main(String[] args) {
List<String[]> list = new ArrayList<>();
list.add(new String[]{"A", "B", "C"});
list.add(new String[]{"D", "E", "F"});
list.add(new String[]{"X", "Y", "Z"});
for (int i = 0; i < list.size() - 1; i++) {
list.set(i + 1, combo(list.get(i), list.get(i + 1)));
}
String[] resultList = list.get(list.size() - 1);
for (int i = 0; i < resultList.length; i++) {
if (i % 10 == 0 && i != 0){
System.out.println();
}
System.out.print(resultList[i] +"\t");
}
}
public static String[] combo(String[] arr1, String[] arr2) {
String[] newArr = new String[arr1.length * arr2.length];
int k = 0;
for (String s : arr1) {
for (String ss : arr2) {
newArr[k] = s + ":" + ss;
k++;
}
}
return newArr;
}
结果如图所示: