У меня проблема, которая на самом деле является вопросом общего программирования, но моя реализация выполняется на Java, поэтому я приведу свои примеры таким образом
У меня есть класс вроде этого:
public class Foo {
LinkedHashMap<String, Vector<String>> dataStructure;
public Foo(LinkedHashMap<String, Vector<String>> dataStructure){
this.dataStructure = dataStructure;
}
public String[][] allUniqueCombinations(){
//this is what I need to do
}
}
Мне нужно создать вложенный массив из моего LinkedHashMap
, который представляет каждую уникальную комбинацию всех значений в LHM. например, если мой LHM выглядит так (псевдокод, но я думаю, вы можете получить идею..):
{"foo" => ["1","2","3"], "bar" => ["3","2"], "baz" => ["5","6","7"]};
тогда моя строка [] [] должна выглядеть так:
{
{"foo","bar","baz"},
{"1","3","5"},
{"1","2","5"},
{"1","3","6"},
{"1","2","6"},
{"1","3","7"},
{"1","2","7"},
{"2","3","5"},
{"2","2","5"},
{"2","3","6"},
{"2","2","6"},
{"2","3","7"},
{"2","2","7"},
{"3","3","5"},
{"3","2","5"},
{"3","3","6"},
{"3","2","6"},
{"3","3","7"},
{"3","2","7"},
}
Я думаю, что все они, я сделал это вручную (очевидно), поэтому я, возможно, пропустил набор, но я думаю, что это иллюстрирует то, что я пытаюсь сделать. Не имеет значения, в какой порядок входит каждый набор, если присутствуют все уникальные комбинации. Также, чтобы быть ясным, вы не знаете, сколько элементов находится в LHM, и сколько элементов в каждом последующем Vector. Я нашел ответы, которые соответствуют случаю, когда вам нужна каждая уникальная комбинация всех элементов в одном массиве, но ничего не подходит для этого. Если это точный дубликат вопроса, пожалуйста, поместите ссылку в ответ, и я закрою вопрос.
update. Я изменил свои типы на строки, потому что мой пример реального мира - это строки. Я пытался использовать целые числа, чтобы сделать этот пример более удобочитаемым, но ответы, которые я получил до сих пор, не переводят строки на строки. Итак, да, это цифры, но в моем фактическом случае они будут нитями, которые не имели бы никакого смысла никому, кроме людей, которые используют это конкретное приложение. так что это просто абстракция.