查找重复的元素,它是从多个 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()));
我有两个助焊剂,其中包含如下所示的水果名称。我要放水果名称,算了。
例如:
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()));