1

我是 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吗?

4

1 回答 1

1

groupBy返回一个为每个唯一键Observable发出一个的。GroupedObservableAGroupedObservable实际上只是Observable添加了getKey方法,因此您可以识别与哪个键GroupedObservable相关联。因此,如果您想在 each 中发出每个值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);
于 2021-06-25T15:46:47.440 回答