我有以下集合类型:
Map<String, Collection<String>> map;
Run Code Online (Sandbox Code Playgroud)
我想map.size()从每个Key的集合中的单个值创建每个组的唯一组合.
例如,假设地图如下所示:
A, {a1, a2, a3, ..., an}
B, {b1, b2, b3, ..., bn}
C, {c1, c2, c3, ..., cn}
Run Code Online (Sandbox Code Playgroud)
我希望获得的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}
Run Code Online (Sandbox Code Playgroud)
这基本上是一个计数问题,但我想看看是否可以使用Java 8流解决方案.
我有一些ArrayList每个ArrayList都有对象,每个可以有不同的长度.我需要生成排列,如下例所示:
假设我有2个arraylist
arraylist A有对象a,对象b和对象c
arraylist B有对象d,对象e
那么输出应该是6个新的arraylist与这个组合:
组合1对象a和对象d,
组合2对象a和对象e,
组合3对象b和对象d,
组合4对象b和对象e,
组合5对象c和对象d,
组合6对象c和对象e,
谁能帮我?
我想找到一组元素的笛卡尔积.这是一个例子
example 1 :
sets :(ab) (bc) (ca)
Run Code Online (Sandbox Code Playgroud)
笛卡儿的产品是,
abc aba acc aca bbc bba bcc bca
example 2 :
sets : (zyx) b c
Run Code Online (Sandbox Code Playgroud)
笛卡儿的产品是,
zbc ybc xbc
所以我在想一个在java中执行的算法,它可以找到在开始编译时定义的特定数量的组的笛卡尔积.