【发布时间】:2017-12-30 16:45:33
【问题描述】:
假设我有一个 Java 8 流数组:Stream<T>[] streams,我想创建一个 Stream,其中新流的每个元素都是一个数组,该数组由每个初始基本流中的一个元素组成(让我们假设它们都是连续的)。
例如,如果我有:
streams [ 0 ] returning: ( "A", "B", "C" ),
streams [ 1 ] returning ( "X", "Y", "Z" )
and streams [ 2 ] as ( "0", "1", "2" )
我想要一个返回的流
( { "A", "X", "0" }, { "B", "Y", "1" }, { "C", "Z", "2" } )
是否有一些代码已经实现了这一点?我知道如何做到这一点,这将是pair case 的概括,但我想知道是否已经存在可重用的东西。
编辑:抱歉,我意识到我需要澄清一下:
我不想创建整个矩阵,我想要一个动态地一次返回一行的流(第一个 A/X/0,然后是 B/Y/1 等),而不必预先将所有行占用内存。我可以对基本流的大小做出合理的假设(例如,取最小值,一旦有没有更多元素要返回的流就停止)。
我知道这可以通过首先将基本流转换为迭代器来实现,然后创建一个新迭代器,next() 从每个下划线迭代器中选择一个元素并返回一个新行。这就是我上面链接的对示例所做的,我可以在自己身上实现它,在这里我试图了解它是否已经在某个库中完成(我知道 JDK 没有这样的功能)。
【问题讨论】:
标签: java-8 java-stream