响应式编程中如何创建计数器映射?
使用groupBy实现特定去重过滤的方案
我之前处理类似需求时,能想到的唯一解决方案就是借助groupBy操作符,不过说实话,我总觉得这种写法有点不太“常规”:
objectsObservable .groupBy(object -> object) .flatMapMaybe(sameObjectsObservable -> { Object object = sameObjectsObservable.getKey(); return sameObjectsObservable .count() .filter(shouldFilter) .ignoreElement() .andThen(Maybe.just(object)); })
这段代码的核心逻辑是先将相同对象分组,统计每组的元素数量后,通过filter(shouldFilter)筛选出符合计数要求的组,最终仅保留该组的对象实例,以此实现“保留满足特定计数条件的唯一对象”的效果。
内容的提问来源于stack exchange,提问作者Alex Kokorin
相关产品推荐
相关产品推荐

