Tag: cartesian product

其他流的笛卡尔积的流,每个元素作为List?

如何使用Java 8实现一个函数来获取一些流,并生成一个流,其中每个元素都是一个由流的笛卡尔积的一个成员组成的列表? 我看过这个问题 – 这个问题使用了一个BinaryOperator的聚合BinaryOperator (取两个类似的类型并生成相同类型的项目)。 我希望最终结果中的项目是List而不是输入流中元素的类型。 具体而言,假设我所需的function称为product ,如下: Stream<List> result = product( Stream.of(“A”, “B”, “C”, “D”), Stream.of(“I”, “J”, “K), Stream.of(“Y”, “Z”) ); result.forEach(System.out::println); 应该打印: [A, I, Y] [A, I, Z] [A, J, Y] [A, J, Z] [A, K, Y] [A, K, Z] [B, I, Y] … [D, K, Y] [D, K, Z] 理想情况下,我希望这个操作尽可能地懒惰。 例如,如果输入流是由Stream.generate() […]

用Java查找笛卡尔积

我想找到一组元素的笛卡尔积。 这是一个例子 example 1 : sets :(ab) (bc) (ca) 笛卡儿的产品是, abc aba acc aca bbc bba bcc bca example 2 : sets : (zyx) bc 笛卡儿的产品是, zbc ybc xbc 所以我在想一个在java中执行的算法,它可以找到在编译时在开始时定义的特定数量的组的笛卡尔积。

如何用Java生成笛卡尔积?

我有一些ArrayList ,每个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, 谁能帮我?

Java 8中流的笛卡尔积作为流(仅使用流)

我想创建一个方法来创建一个元素流,这些元素是多个给定流的笛卡尔积(由二元运算符聚合到同一类型)。 请注意,参数和结果都是流, 而不是集合。 例如,对于{A,B}和{X,Y}的两个流,我希望它产生值{AX,AY,BX,BY}的流 (简单串联用于聚合字符串)。 到目前为止,我已经提出了这个代码: private static Stream cartesian(BinaryOperator aggregator, Stream… streams) { Stream result = null; for (Stream stream : streams) { if (result == null) { result = stream; } else { result = result.flatMap(m -> stream.map(n -> aggregator.apply(m, n))); } } return result; } 这是我想要的用例: Stream result = cartesian( (a, b) […]

如何使用Java 8流制作笛卡尔积?

我有以下集合类型: Map<String, Collection> map; 我想从每个Key的集合中的单个值创建每个map.size()唯一组合。 例如,假设地图如下所示: A, {a1, a2, a3, …, an} B, {b1, b2, b3, …, bn} C, {c1, c2, c3, …, cn} 我想得到的结果是List<Set>结果,看起来类似于(排序并不重要,它只需要是一个由所有可能组合组成的’完整’结果): {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, […]