生成将函数应用于反应堆通量的两个连续元素的元素

问题描述

为了简化起见,我假设会有一个Flux<String> -> "1","2","3","n"

发出的助焊剂。

我需要做的是获取两个连续的元素并应用一个操作(例如flatMap),该操作将根据它们生成一些元素。再次让我们假设该函数将第一个元素与第二个元素连接,并将第二个元素与第一个元素连接:

f(x,y) -> "xy","yx"

所以原始Flux发出的最终序列应该是:

"12" - "21" - "23" - "32" - "3n" - "n3"

这怎么办?

解决方法

使用buffer(2,1)解决:

fun main() {
    val flux = listOf("1","2","3","4").toFlux()
    flux.buffer(2,1)
            .flatMap {
                if (it.size == 2) {
                    listOf(it[0] + it[1],it[1] + it[0]).toFlux()
                } else {
                    Flux.empty()
                }
            }.doOnNext { println(it) }
            .subscribe()
}

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...