你可以把你拥有的所有List放到一个totalList中,它的类型是List>。一次组合 2 个列表以填充所有组合案例。
以下是供您参考的示例,它将根据需要打印信息。
注意: 它支持 List 的动态数量和 List 的动态大小。
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class Test {
public static void main(String[] args) {
List<String> listOne = Arrays.asList("Silver", "White", "Grey",
"Purple");
List<String> listTwo = Arrays.asList("Petrol", "Hybrid");
List<String> listThree = Arrays.asList("Toyota", "Micro");
List<List<String>> totalList = Arrays.asList(listOne,listTwo,listThree);
new Test().printAllCases(totalList);
}
public void printAllCases(List<List<String>> totalList) {
List<String> result = new ArrayList<String>(totalList.get(0));
for(int index = 1; index < totalList.size(); index++) {
result = combineTwoLists(result, totalList.get(index));
}
/* print */
int count = 0;
for(String s: result) {
System.out.printf("%d. %s\n", ++count, s);
}
}
private List<String> combineTwoLists(List<String> list1, List<String> list2) {
List<String> result = new ArrayList<String>();
StringBuilder sb = new StringBuilder();
for(String s1 : list1) {
for(String s2: list2) {
sb.setLength(0);
sb.append(s1).append(' ').append(s2);
result.add(sb.toString());
}
}
return result;
}
}