我是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
,该为每个唯一键发出一个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);