如何解决生成将函数应用于反应堆通量的两个连续元素的元素
为了简化起见,我假设会有一个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()
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。