Scala 如何合并两个有序的akka流以保存订单
假设我们有两个不同的有序akka流源:Scala 如何合并两个有序的akka流以保存订单,scala,akka,streaming,akka-stream,Scala,Akka,Streaming,Akka Stream,假设我们有两个不同的有序akka流源: val source1: Source[Int, NotUsed] = Source(List(1, 12, 18)) val source2: Source[Int, NotUsed] = Source(List(10, 20, 30)) 我们如何合并这些源,使它们在生成的流中也被排序 val mergedOrderedStream: Source[Int, NotUsed] = ??? mergedOrderedStream.runFo
val source1: Source[Int, NotUsed] = Source(List(1, 12, 18))
val source2: Source[Int, NotUsed] = Source(List(10, 20, 30))
我们如何合并这些源,使它们在生成的流中也被排序
val mergedOrderedStream: Source[Int, NotUsed] = ???
mergedOrderedStream.runForeach(println)
// Expected output:
// 1
// 10
// 12
// 18
// 20
// 30
您应该使用源#合并排序:
val source1: Source[Int, NotUsed] = Source(List(1, 12, 18))
val source2: Source[Int, NotUsed] = Source(List(10, 20, 30))
val mergedOrderedStream: Source[Int, NotUsed] = source1.mergeSorted(source2)
mergedOrderedStream.runForeach(println)
// prints
// 1
// 10
// 12
// 18
// 20
// 30
如果其中一个
源包含较少的元素,那么“输出”中会出现什么情况?