У меня есть List
из List<String>
, которые я получаю при вызове метода внешнего API:
List<List<String>> outerList
Я должен создать уникальные комбинации клавиш, объединяя строки из каждого списка в одном и том жепорядок, в котором они находятся во внешнем списке.
Пример: если внешний список имеет 2 внутренних списка, скажем, list1: {"A", "B"} и list2: {"C", "D"}.Тогда возможными уникальными комбинациями будут AC, AD, BC и BD.
Но проблема в том, что размер outerList
является динамическим, он может содержать любое количество внутренних списков.Если внутренние номера списка являются фиксированными, то я могу писать для циклов и создавать комбинации.
Я думаю о направлении использования отражений, рекурсии и т. Д., Но до сих пор не смог ее решить.
public static void main(String[] args) {
List<List<String>> outerList = new ArrayList<List<String>>();
List<String> list1 = new ArrayList<String>();
list1.add("A");
list1.add("B");
List<String> list2 = new ArrayList<String>();
list2.add("C");
list2.add("D");
outerList.add(list1);
outerList.add(list2);
for(String s1: list1) {
for(String s2: list2) {
System.out.println(s1+s2);
}
}
}
Здесь outerList
имеет 2 внутренних списка, поэтому я создал 2 цикла for для итерации и объединения.Но в режиме реального времени externalList может иметь любое количество внутренних списков, как динамически циклически проходить через все внутренние циклы и объединять?