Мне нужно объединить значения из нескольких (возможно, бесконечных) потоков, количество потоков может варьироваться; иногда «рисовать один из каждого» и обрабатывать их как кортеж, иногда чередуя значения.Объединение потоков Scala
вход образца может быть таким:
val as= Stream.from(0)
val bs= Stream.from(10)
val cs= Stream.from(100)
val ds= Stream.from(1000)
val list= List(as, bs, cs, ds)
Для первого случая использования, я хотел бы в конечном итоге с чем-то вроде
Seq(0, 10, 100, 1000), Seq(1, 11, 101, 1001), ...
и второй
Seq(0, 10, 100, 1000, 1, 11, 101, 1001, ...
Есть ли стандартное или даже встроенное решение для объединения Stream
s?
Может быть, 'flatMap (_. headOption)' в случае, если потоки не бесконечны? – Thilo