查找重复的元素,它是从多个 Flux 中计数的

Find repeated elements and it's count from multiple Flux's

我有两个助焊剂,其中包含如下所示的水果名称。我要放水果名称,算了。

例如:

Flux<String> flux1 = Flux.just("apple", "orang", "banana", "mangoes", "mangoes");
Flux<String> flux2 = Flux.just("pears", "limes", "banana", "plums", "apple");

预期产量:apple -2, orang-1,banana-2,mangoes-2,pears-1,limes-1, etc..

Flux<Map> 中生成输出是否更好?或任何其他最佳解决方案?

由于 Map 是单个项目,您可以按如下方式生成 Mono<Map<String, Long>>

Mono<Map<String, Long>> result = Flux.merge(flux1, flux2).groupBy(it -> it).flatMap(group -> Mono.zip(Mono.just(group.key()), group.count())).collectMap(Tuple2::getT1, Tuple2::getT2);

或者,您也可以通过以下方式获得 Flux<Tuple2<String, Long>>

Flux<Tuple2<String, Long>> result = Flux.merge(flux1, flux2).groupBy(it -> it).flatMap(group -> Mono.zip(Mono.just(group.key()), group.count()));