将平面图与分组的可观察对象一起使用
Use flatmap with grouped observables
我是 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
returns 一个 Observable
为每个唯一键发出一个 GroupedObservable
。 GroupedObservable
实际上只是添加了 getKey
方法的 Observable
,因此您可以识别 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);
我是 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
returns 一个 Observable
为每个唯一键发出一个 GroupedObservable
。 GroupedObservable
实际上只是添加了 getKey
方法的 Observable
,因此您可以识别 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);