我怎样才能从 GroupedObservable 中获取价值?
How can I get value from GroupedObservable?
我使用了 groupBy 迭代器并获得了 GroupedObservable 对象。现在我想将该组缩减为一个 T 对象。如何从 GroupedObservable 获取 V?我只能看到 getKey() 运算符,而自动完成功能对我没有帮助。
o.groupBy(player.getName())
.flatMap(namePlayers -> {
// How can I extract Observable<Player> from namePlayers
// I want to write sth like this:
.collect(Result::new, (result, player) -> result.mergeInfoFrom(player))
.flatMapCompletable(result -> writeResultSomeWhere())
}
谢谢。
A GroupedObservable
是一个 Observable
,所以你有通常的 map
、filter
、flatMap
、collect
等运算符可用。
Observable.range(1, 20)
.groupBy(v -> v % 2 == 0)
.flatMapMaybe(group -> {
return group.reduce((a, b) -> a + b)
.map(v -> "Group " + group.getKey() + " sum is " + v);
})
.subscribe(System.out::println);
getObservable()
.flatMap(Observable::from)
.groupBy(player-> player.getName())
.flatMap(player-> player.count()
.map(player -> player)
.subscribe(//** your logic for subscription **//);
使用 GroupedObservable 的简单示例。
我使用了 groupBy 迭代器并获得了 GroupedObservable 对象。现在我想将该组缩减为一个 T 对象。如何从 GroupedObservable 获取 V?我只能看到 getKey() 运算符,而自动完成功能对我没有帮助。
o.groupBy(player.getName())
.flatMap(namePlayers -> {
// How can I extract Observable<Player> from namePlayers
// I want to write sth like this:
.collect(Result::new, (result, player) -> result.mergeInfoFrom(player))
.flatMapCompletable(result -> writeResultSomeWhere())
}
谢谢。
A GroupedObservable
是一个 Observable
,所以你有通常的 map
、filter
、flatMap
、collect
等运算符可用。
Observable.range(1, 20)
.groupBy(v -> v % 2 == 0)
.flatMapMaybe(group -> {
return group.reduce((a, b) -> a + b)
.map(v -> "Group " + group.getKey() + " sum is " + v);
})
.subscribe(System.out::println);
getObservable()
.flatMap(Observable::from)
.groupBy(player-> player.getName())
.flatMap(player-> player.count()
.map(player -> player)
.subscribe(//** your logic for subscription **//);
使用 GroupedObservable 的简单示例。