У меня есть следующий тип коллекции:
Map<String, Collection<String>> map;
Я хотел бы создать уникальные комбинации каждого из map.size()
из одного значения в коллекции для каждого ключа.
Например, предположим, что карта выглядит следующим образом:
A, {a1, a2, a3, ..., an}
B, {b1, b2, b3, ..., bn}
C, {c1, c2, c3, ..., cn}
Результат, который я хотел бы получить, будет иметь результат List<Set<String>>
, похожий на (упорядочение не важно, оно просто должно быть "полным" результатом, состоящим из всех возможных комбинаций):
{a1, b1, c1},
{a1, b1, c2},
{a1, b1, c3},
{a1, b2, c1},
{a1, b2, c2},
{a1, b2, c3},
...
{a2, b1, c1},
{a2, b1, c2},
...
{a3, b1, c1},
{a3, b1, c2},
...
{an, bn, cn}
Это в основном проблема подсчета, но я хотел бы посмотреть, возможно ли решение с использованием потоков Java 8.