gpt4 book ai didi

kotlin - 根据值(value)减少助焊剂排放?

转载 作者:行者123 更新时间:2023-12-02 12:42:39 25 4
gpt4 key购买 nike

我有以下变化:

val myFlux = Flux.fromIterable(listOf("A", "A", "B", "C", "C"))

此通量内的元素已排序,通量本身巨大(我们可以假设它是无限的)

我想将其映射到 Flux<String>中,其中每个 String将分别包含 AA B CC

也可以是 Flux<SomeDomainObject>,其中每个 SomeDomainObject将包含相同的键(例如 AA)

我不能使用 groupBy,因为键数很大。

所需的通量行为:
desired flux behavior

最佳答案

您可以使用bufferUntil-功能:https://projectreactor.io/docs/core/release/api/reactor/core/publisher/Flux.html#bufferUntil-java.util.function.Predicate-boolean-

fun<T> newItem(): Predicate<T> {
var lastItem: T? = null

return Predicate<T> { newItem ->
when {
lastItem == null -> {
lastItem = newItem
false
}
lastItem != newItem -> {
lastItem = newItem
true
}
else -> false
}
}
}

fun main(args: Array<String>) {
val flux = Flux.just("A", "A", "B", "C", "C")
val buffered = flux.bufferUntil(newItem(), true).map { it.joinToString("") }

buffered.subscribe {
println(it)
}
}

关于kotlin - 根据值(value)减少助焊剂排放?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52857821/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com