与Flux的相交操作-Project Reactor

问题描述 投票:0回答:1

假设我同时有var a = Flux.just("A", "B", "C")var b = Flux.just("B", "C", "D")

我希望能够将两个变量都相交,并且结果应等于设定的相交

a.intersect(b)Flux.intersect(a, b)之类的东西会导致["B", "C"]的通量

我找不到执行此操作的任何操作,有任何想法吗?

java reactive-programming spring-webflux project-reactor
1个回答
0
投票

大概有100种方法可以实现。这是一个:

var a = Flux.just("A", "B", "C");
var b = Flux.just("B", "C", "D");
a.map(s -> Tuples.of(s, b))
        .filterWhen(t -> t.getT2().any(bs -> bs.equals(t.getT1())))
        .map(Tuple2::getT1)
        .log()
        .subscribe();

注意:以上序列播放b序列a次。如果您不想播放a次,例如将其收集到List中,则应使用自定义策略。

© www.soinside.com 2019 - 2024. All rights reserved.