假设我同时有var a = Flux.just("A", "B", "C")
和var b = Flux.just("B", "C", "D")
我希望能够将两个变量都相交,并且结果应等于设定的相交
a.intersect(b)
或Flux.intersect(a, b)
之类的东西会导致["B", "C"]
的通量
我找不到执行此操作的任何操作,有任何想法吗?
大概有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
中,则应使用自定义策略。