如何在响应式编程中创建计数器映射?



我想出的唯一解决方案是使用groupBy,但它看起来很hack,IMO:

objectsObservable
.groupBy(object -> object)
.flatMapMaybe(sameObjectsObservable -> {
Object object = sameObjectsObservable.getKey();
return sameObjectsObservable
.count()
.filter(shouldFilter)
.ignoreElement()
.andThen(Maybe.just(object));
})

您只需要一个步骤即可count()单个组。

objectsObservable
.groupBy( object -> object )
.flatMap( objectGroup -> objectGroup
.count()
.map( c -> objectGroup.getKey() + " has " + c + " elements") )
.subscribe( System::out::println );

最新更新