微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将 flatmap 与分组的 observable 一起使用

如何解决将 flatmap 与分组的 observable 一起使用

我是 RxJava 的新手并试图理解它。我有以下来源:

Observable<Employee> obs = Observable.just(
    new Employee(101,"Jim",68_000,4.2),new Employee(123,"Bill",194_000,6.7));  

obs.groupBy(e -> e.getrating())
                .flatMap(e-> {
                    return Observable.fromIterable(
                        Arrays.asList(e.getKey())
                    );
                })
                .subscribe(System.out::println);
 

这会打印评分的关键,但我无法打印值。
是否可以使用 flatMap

解决方法

groupBy 返回一个 Observable,它为每个唯一键发出一个 GroupedObservableGroupedObservable 实际上只是添加了 Observable 方法的 getKey,因此您可以识别 GroupedObservable 与哪个键关联。因此,如果您想在每个 GroupedObservable 中发出每个值,只需将整个内容直接传递给 flatMap 调用:

Observable<Employee> obs = Observable.just(
    new Employee(101,"Jim",68_000,4.2),new Employee(123,"Bill",194_000,6.7));  

obs.groupBy(e -> e.getRating())
    .flatMap(e -> e)
    .subscribe(System.out::println);

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。