如何在java中获得三个列表的所有组合?

时间:2017-07-16 04:45:40

标签: java list set combinations

我有一种情况,我必须检查网站上一系列问题的所有可能答案。所有选项都是复选框类型。

例如:(问:问题,A,B,C:选项)

Q1:A1 A2 A3 A4

Q2:B1 B2 B3

Q3:C1 C2

所以我需要检查所有组合,如:

A1B1C1,A1B1C2,A1B2C1,A1B2C2等......

A1A2B1C1,A1A2B1C2,A1A2B1B2C1,A1A2B1B2C2,A1A2B2B3C1,A1A2B2B3C2,A1A2B1B3C1,A1A2B1B3C2等

A1A2B1B2B3C1,A1A2B1B2B3C2,A1A2B1B2B3C1C2等。

谢谢。

1 个答案:

答案 0 :(得分:-1)

在下面运行3嵌套for循环或递归是一个如何做到的示例

String[] Q1 = {"A1", ... "An"};
String[] Q2 = {"B1", ... "Bn"};
String[] Q3 = {"C1", ... "Cn"};
Set<String> combination = new HashSet<>();

for (String q1: Q1) {
   for (String q2: Q2) {
      for (String q3: Q3) {
        combination.add(q1 + q2 + q3)
    }
  }
}

如果你想要更多的组合,你可以做一个递归