如何使用Java 8流创建笛卡尔积?
- 论坛
- 如何使用Java 8流创建笛卡尔积?
18 浏览
如何使用Java 8流创建笛卡尔积?
我有以下的集合类型:
Map> map;
我想要为每个键中的集合中的单个值创建map.size()
个唯一组合。
例如,假设地图如下所示:
A, {a1, a2, a3, ..., an} B, {b1, b2, b3, ..., bn} C, {c1, c2, c3, ..., cn}
我想要得到的结果是一个List
,类似于以下形式(顺序不重要,只需是一个“完整”的结果,包含所有可能的组合):
{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的流来解决。